Submission #236788

#TimeUsernameProblemLanguageResultExecution timeMemory
236788NONAMEAutomobil (COCI17_automobil)C++17
100 / 100
29 ms16000 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll base = 1e9 + 7;
const int N = 1e6 + 10;

ll row[N], col[N];

void mul(ll &x, ll y) { (x *= y) %= base; }
void sum(ll &x, ll y) { (x += y) %= base; }

int main() {
	ll n, m, q;
	
	cin >> n >> m >> q;
	
	for (int i = 1; i <= n; ++i)
		row[i] = 1;
		
	for (int j = 1; j <= m; ++j)
		col[j] = 1;
	
	while (q--) {
		char type; ll x, y;
		
		cin >> type >> x >> y;
		
		if (type == 'R') mul(row[x], y);
			else mul(col[x], y);
	}
	
	ll sm = 0;
	for (int i = 1; i <= m; ++i)
		sum(sm, col[i]);
	
	ll cr = 0;
	for (int i = 1; i <= m; ++i) {
		ll vl = col[i];
		mul(vl, i);
		sum(cr, vl);
	}
	
	ll ans = 0;
	for (int i = 1; i <= n; ++i) {
		ll vl = cr;
		mul(vl, row[i]);
		sum(ans, vl);
		
		vl = sm;
		mul(vl, m);
		sum(cr, vl);
	}
	
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...