Submission #507615

#TimeUsernameProblemLanguageResultExecution timeMemory
507615thomas_liBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
651 ms88484 KiB
#include <bits/stdc++.h>
using namespace std;
const int MM = 3e3+5;
int n,m,psar[MM][MM],psac[MM][MM]; char g[MM][MM];
int main(){
	cin >> n >> m;	
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			cin >> g[i][j];
		}
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			psar[i][j] = psar[i][j-1] + (g[i][j] == 'O');
		}
	}
	for(int j = 1; j <= m; j++){
		for(int i = 1; i <= n; i++){
			psac[i][j] = psac[i-1][j] + (g[i][j] == 'I');
		}
	}
	int64_t ans = 0;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			if(g[i][j] == 'J'){
				int cnt1 = psar[i][m] - psar[i][j];
				int cnt2 = psac[n][j] - psac[i][j];
				ans += 1ll*cnt1*cnt2;
			}
		}
	}
	cout << ans << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...