제출 #894645

#제출 시각아이디문제언어결과실행 시간메모리
894645reginoxAutomobil (COCI17_automobil)C++17
50 / 100
12 ms16136 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll maxn = 1e6+3, mod = 1e9+7;
ll r[maxn], c[maxn], res, n, m, k, sumc, sum;
void sub1(){
	for(ll i = 1; i <= n; i++){
		for(ll j = 1; j <= m; j++){
			res += ((i-1)*m+j)*(r[i]*c[j])%mod;
			res%=mod;
		}
	}
	cout << res;
}

void sub2(){
	for(ll i = 1; i <= m; i++){
		sum += c[i]*i;
		sumc += c[i];
		sum %= mod;
	}
	sumc = (sumc * m) % mod;
	for(ll i = 1; i <= n; i++){
		res += (sum*r[i])%mod;
		res%=mod;
		sum += sumc;
		sum %= mod;
	}
	cout << res;
}

int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> n >> m >> k;
	for(ll i = 1; i <= n; i++) r[i]=1;
	for(ll i = 1; i <= m; i++) c[i]=1;
	char t;
	ll x, y;
	while(k--){
		cin >> t >> x >> y;
		if(t=='R') r[x] = (r[x]*y)%mod;
		else c[x] = (c[x]*y)%mod;
	}
	if(n <= 1000 && m <= 1000){
		sub1();
	}
	else{
		sub2();
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...