なんでなんですかね
この問題(ABC164-D)で
#include <bits/stdc++.h>
using namespace std;
long long N;
string S;
long long solve()
{
long long tenfactor = 1;
long long cur = 0;
val[cur]++;
for (int i = 0; i < N; ++i)
{
cur = (cur + (S[N - i - 1] - '0') * tenfactor) % 2019;
tenfactor = (tenfactor * 10) % 2019;
val[cur]++;
}
long long res = 0;
for (int p = 0; p < 2019; ++p)
res += val[p] * (val[p] - 1) / 2;
return res;
}
int main()
{
cin >> S;
N = S.size();
cout << solve() << endl;
}
13行目を
tenfactor *= 10;
にするとWAなのはなんでなんですかね…
手計算ミスっただけ?
参考↓
(2020/04/29)
分かりやすい記事を偶然見つけたので追記。↓