AGC009: A - Multiple Array
問題
解説
押した場所とその左側が全て1増加するので、必要最小限を考えるなら右から貪欲する。 類題沢山ある気がするしパターン化できそう?
コード
int N; int a[100010]; int b[100010]; int main() { cin >> N; rep(i, N) cin >> a[i] >> b[i]; int64_t plus = 0; rep(i, N) { int k = N - i - 1; int po = b[k] - (a[k] + plus) % b[k]; if (po < b[k]) { plus += po; } } cout << plus << "\n"; }