Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6. typedef pair<int, int> ii;
  7.  
  8. const int MOD = 1e9+7;
  9. const int MAX = 1e2 + 10;
  10.  
  11. inline ll mul(ll a, ll b) {
  12.     return (1ll * a * b) % MOD;
  13. }
  14.  
  15. inline ll add(ll a, ll b) {
  16.     return (a + b) % MOD;
  17. }
  18.  
  19.  
  20. int main() {
  21.     ios_base::sync_with_stdio(0);
  22.     cin.tie(0);
  23.  
  24.     #ifdef LOCAL
  25.         freopen("input.txt", "r", stdin);
  26.         freopen("output.txt", "w", stdout);
  27.     #else
  28.         #define endl '\n'
  29.     #endif // LOCAL
  30.  
  31.     int n, m, k; cin >> n >> m >> k;
  32.     ll f0 = 0;
  33.  
  34.     vector<ll> rcnt(n+1, 1);
  35.     vector<ll> ccnt(m+1, 1);
  36.     for(int i = 0; i < k; i++) {
  37.         char op; ll x, y; cin >> op >> x >> y;
  38.         if(op == 'R') {
  39.             rcnt[x] = mul(rcnt[x], y);
  40.         } else {
  41.             ccnt[x] = mul(ccnt[x], y);
  42.         }
  43.     }
  44.  
  45.     ll sumki = 0;
  46.     ll viki = 0;
  47.     for(int i = 1; i <= n; i++) {
  48.         sumki = add(sumki, rcnt[i]);
  49.         ll v = add( mul(m, i-1), 1);
  50.         viki = add( viki, mul(v, rcnt[i]) );
  51.     }
  52.  
  53.     ll ans = 0;
  54.     for(int i = 1; i <= m; i++) {
  55.         ll in = add( mul(i-1, sumki), viki);
  56.         ans = add(ans, mul(ccnt[i], in));
  57.     }
  58.  
  59.     cout << ans << endl;
  60.  
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement