Submission #352410

#TimeUsernameProblemLanguageResultExecution timeMemory
352410SeDunionBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
166 ms162924 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 3000 + 66;

string s[N];
ll d[N][N], r[N][N], Ans;

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