Submission #1258707

#TimeUsernameProblemLanguageResultExecution timeMemory
1258707quanaskingerBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
406 ms220972 KiB
#include<bits/stdc++.h>
using namespace std;
int n, m, pre1[3][3005][3005], pre2[3][3005][3005];
char d[3] = {'J', 'I', 'O'};
int main() {
	cin >> m >> n;
	char arr[m + 5][n + 5];
	for (int i = 1; i <= m; i++) {
		for (int j = 1; j <= n; j++) {
			cin >> arr[i][j];
			for (int k = 0; k <= 2; k++) {
				pre1[k][i][j] = pre1[k][i][j - 1] + (arr[i][j] == d[k]);	
				pre2[k][i][j] = pre2[k][i - 1][j] + (arr[i][j] == d[k]);	
			}
		}
	}
	long long res = 0;
	for (int i = 1; i <= m; i++) {
		for (int j = 1; j <= n; j++) {
			if (arr[i][j] == 'J') {
				long long dt = (pre2[1][m][j] - pre2[1][i][j]) * (pre1[2][i][n] - pre1[2][i][j]);
				res += dt;
			}
		}
	}
	cout << res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...