mrlolthe1st

Untitled

Nov 5th, 2021
832
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.48 KB | None | 0 0
  1. cin >> d;
  2.     for (int i = 0; i < d; ++i) cin >> n[i];
  3.     int res = 1, ans = 0;
  4.     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),
  5.         cur_res[i] = 1 + (q[i] - 1 > 0) + (q[i] + 1 <= n[i]), res = (res * cur_res[i]) % MOD;
  6.     for (int i = 1; i <= 1e5; ++i) {
  7.         ans = (ans + (res - 1)) % MOD;
  8.         for (auto& e : rd[i]) {
  9.             res = (res * binpow(cur_res[e], MOD - 2)) % MOD;
  10.             res = (res * --cur_res[e]) % MOD;
  11.         }
  12.     }
  13.     cout << (ans + MOD) % MOD;
Advertisement
Add Comment
Please, Sign In to add comment