#はじめに
ABC156で負の数を割ることを考慮した計算が必要だったので忘れないように書き起こします。
#コード
#include <iostream>
using namespace std;
const int MOD = 5;
int main(void){
//この書き方だと正しく求められない
cout << -32%MOD << endl;//want:3 out:-2
cout << -31%MOD << endl;//want:4 out:-1
cout << -30%MOD << endl;//want:0 out:0
//この書き方なら正しく求められる
cout << (-32%MOD+MOD)%MOD << endl;//want:3 out:3
cout << (-31%MOD+MOD)%MOD << endl;//want:4 out:4
cout << (-30%MOD+MOD)%MOD << endl;//want:0 out:0
}
#終わりに
C++なら上記ソースコードの後半部のように書けばOKです。ABC156-D問題はこれで通せました。
【コメント欄での補足】
C++11 以降は余剰の符号が言語仕様で規定されたようです。C++11 以降なら負数に対する剰余演算はあまり気にせず行えばよいとのことです。ご指摘ありがとうございます。