Submission #557698

#TimeUsernameProblemLanguageResultExecution timeMemory
557698ljubaBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
236 ms89640 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n, m;
    cin >> n >> m;
    vector<string> mat(n);
    for(auto &z : mat) cin >> z;

    vector<vector<int>> ig(n, vector<int>(m, 0));
    vector<vector<int>> o(n, vector<int>(m, 0));

    for(int i = n-1; i >= 0; --i) {
        for(int j = 0; j < m; ++j) {
            ig[i][j] = (mat[i][j] == 'I');

            if(i + 1 < n) {
                ig[i][j] += ig[i+1][j];
            }
        }
    }

    for(int j = m-1; j >= 0; --j) {
        for(int i = 0; i < n; ++i) {
            o[i][j] = (mat[i][j] == 'O');

            if(j + 1 < m) {
                o[i][j] += o[i][j+1];
            }
        }
    }

    ll ans = 0;

    for(int i = 0; i + 1 < n; ++i) {
        for(int j = 0; j + 1 < m; ++j) {
            if(mat[i][j] != 'J') continue;
            ans += ig[i+1][j] * o[i][j+1];
        }
    }

    cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...