Submission #591157

#TimeUsernameProblemLanguageResultExecution timeMemory
591157dryeabBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
370 ms53244 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {

    ios::sync_with_stdio(false);
    cin.tie(0);

    int h, w;
    cin >> h >> w;

    vector<vector<char>> grid(h, vector<char>(w));
    vector<vector<int>> mark(h, vector<int>(w));

    for (int i = 0; i < h; ++i) {
        for (int j = 0; j < w; ++j)
            cin >> grid[i][j];
    }

    int ok;

    for (int j = 0; j < w; ++j) {
        ok = 0;
        for (int i = h - 1; i >= 0; --i) {
            if (grid[i][j] == 'I')
                ok++;
            else if (grid[i][j] == 'J')
                mark[i][j] = ok;
        }
    }

    long long res = 0;
    for (int i = 0; i < h; ++i) {
        ok = 0;
        for (int j = w - 1; j >= 0; --j) {
            if (grid[i][j] == 'O')
                ok++;
            else if (grid[i][j] == 'J') {
                mark[i][j] *= ok;
                res += mark[i][j];
            }
        }
    }

    cout << res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...