Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cin >> d;
- for (int i = 0; i < d; ++i) cin >> n[i];
- int res = 1, ans = 0;
- for (int i = 0; i < d; ++i) cin >> q[i], rd[n[i] - q[i]].push_back(i), rd[q[i] - 1].push_back(i),
- cur_res[i] = 1 + (q[i] - 1 > 0) + (q[i] + 1 <= n[i]), res = (res * cur_res[i]) % MOD;
- for (int i = 1; i <= 1e5; ++i) {
- ans = (ans + (res - 1)) % MOD;
- for (auto& e : rd[i]) {
- res = (res * binpow(cur_res[e], MOD - 2)) % MOD;
- res = (res * --cur_res[e]) % MOD;
- }
- }
- cout << (ans + MOD) % MOD;
Advertisement
Add Comment
Please, Sign In to add comment