# Educational Codeforces Round 71 - 知見集 D: 複数条件→包除原理 https://github.com/TumoiYorozu/single-file-ac-library/blob/master/marged_ACL.cpp modint ライブラリ印刷 E: 平方分割, mo F: オートマトン, Trie, Aho-Corasick ## F ```cpp= int x[500001], v[701][700]; signed main() { int q; cin >> q; int a[q], b[q], c[q]; for (int i = 0; i < q; i++) cin >> a[i] >> b[i] >> c[i]; for (int i = 0; i < q; i++) { if (a[i] == 1) { x[b[i]] += c[i]; for (int j = 1; j <= 700; j++) v[j][b[i] % j] += c[i]; } else { if (b[i] > 700) { int sum = 0, k = c[i]; while (k <= 500000) { sum += x[k]; k += b[i]; } cout << sum << rt; } else { cout << v[b[i]][c[i]] << rt; } } } } ```