Submission #697991

#TimeUsernameProblemLanguageResultExecution timeMemory
697991cpLover22Bitaro the Brave (JOI19_ho_t1)C++17
100 / 100
276 ms88436 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

const int N = 3e3+5;

int m, n, cntO[N][N], cntI[N][N];
char c[N][N];

signed main() {
	cin.tie(0)->sync_with_stdio(0);
	cin >> m >> n;
	for (int i = 1; i <= m; ++i)
		for (int j = 1; j <= n; ++j) {
			cin >> c[i][j];
			if (c[i][j] == 'O') cntO[i][j] = 1;
			if (c[i][j] == 'I') cntI[i][j] = 1;
		}
	
	for (int i = m; i >= 1; --i)
		for (int j = n; j >= 1; --j) 
			cntI[i][j] += cntI[i+1][j],
			cntO[i][j] += cntO[i][j+1];
	
	ll res = 0;
	for (int i = 1; i <= m; ++i)
		for (int j = 1; j <= n; ++j)
			if (c[i][j] == 'J') 
				res += (ll)cntO[i][j] * cntI[i][j];
	cout << res;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...