Submission #710525

#TimeUsernameProblemLanguageResultExecution timeMemory
710525yellowtoadBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
734 ms159424 KiB
#include <iostream>
using namespace std;

long long n, m, psx[3010][3010], psy[3010][3010], ans;
char c[3010][3010];

int main() {
	cin >> n >> m;
	for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> c[i][j];
	for (int i = 1; i <= n; i++) {
		for (int j = m; j >= 1; j--) {
			psx[i][j] = psx[i][j+1];
			if (c[i][j] == 'O') psx[i][j]++;
		}
	}
	for (int j = 1; j <= m; j++) {
		for (int i = n; i >= 1; i--) {
			psy[i][j] = psy[i+1][j];
			if (c[i][j] == 'I') psy[i][j]++;
		}
	}
	for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) if (c[i][j] == 'J') ans += psx[i][j]*psy[i][j];
	cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...