#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (n); i++)
typedef long long ll;
#define pb push_back
#define st first
#define nd second
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, m;
cin >> n >> m;
char T[n][m];
rep(i, n) {
string s;
cin >> s;
rep(j, m) {
T[i][j] = s[j];
}
}
int ile[n + 1][m + 1][2];
rep(i, n + 1) {
rep(j, m + 1) {
rep(c, 2) {
ile[i][j][c] = 0;
}
}
}
for (int i = n - 1; i >= 0; i--) {
for (int j = m - 1; j >= 0; j--) {
ile[i][j][0] = ile[i][j + 1][0];
if (T[i][j] == 'O') {
ile[i][j][0]++;
}
ile[i][j][1] = ile[i + 1][j][1];
if (T[i][j] == 'I') {
ile[i][j][1]++;
}
}
}
ll ans = 0;
rep(i, n) {
rep(j, m) {
if (T[i][j] == 'J' && (i + 1 < n) && (j + 1 < m)) {
ans += (((long long)ile[i][j + 1][0]) * ((long long)ile[i + 1][j][1]));
}
}
}
cout << ans << '\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |