Submission #651330

#TimeUsernameProblemLanguageResultExecution timeMemory
651330Markomafko972Bitaro the Brave (JOI19_ho_t1)C++14
100 / 100
206 ms88504 KiB
#include <bits/stdc++.h>
using namespace std;

char c[3005][3005];
int d[3005][3005];
int r[3005][3005];

int main () {
	
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	int n, m;
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> c[i][j];
		}
	}
	
	for (int i = n-1; i >= 0; i--) {
		for (int j = m-1; j >= 0; j--) {
			d[i][j] = d[i+1][j];
			if (c[i][j] == 'I') d[i][j]++;
			
			r[i][j] = r[i][j+1];
			if (c[i][j] == 'O') r[i][j]++;
		}
	}
	
	long long sol = 0;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (c[i][j] == 'J') {
				sol += (long long)d[i][j] * (long long)r[i][j];
			}
		}
	}
	cout << sol;
	
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...