Submission #572384

#TimeUsernameProblemLanguageResultExecution timeMemory
572384stevancvBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
152 ms89660 KiB
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define sp ' '
#define en '\n'
#define smin(a, b) a = min(a, b)
#define smax(a, b) a = max(a, b)
using namespace std;
const int N = 1e5 + 2;
int mod = 1000000007;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n, m;
    cin >> n >> m;
    vector<string> a(n);
    vector<vector<int>> b(n, vector<int>(m)), c(n, vector<int>(m));
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    ll ans = 0;
    for (int i = n - 1; i >= 0; i--) {
        for (int j = m - 1; j >= 0; j--) {
            if (a[i][j] == 'O') b[i][j] = 1;
            if (a[i][j] == 'I') c[i][j] = 1;
            if (j < m - 1) b[i][j] += b[i][j + 1];
            if (i < n - 1) c[i][j] += c[i + 1][j];
            if (a[i][j] == 'J') ans += b[i][j] * c[i][j];
        }
    }
    cout << ans << en;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...