Submission #1165269

#TimeUsernameProblemLanguageResultExecution timeMemory
1165269GoBananas69Bitaro the Brave (JOI19_ho_t1)C++20
0 / 100
0 ms324 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

int main() {
    cin.tie(0) -> sync_with_stdio(0);
    int h, w;
    cin >> h >> w;
    vector<vector<char>> grid(h + 1, vector<char>(w + 1, ' '));
    vector<vector<int>> I(h + 1, vector<int>(w + 1, 0));
    vector<vector<int>> O(h + 1, vector<int>(w + 1, 0));
    for (int i = 1; i<=h; ++i) {
        string l; cin >> l;
        for (int j = 1; j<=w; ++j) grid[i][j] = l[j - 1];
    }
    for (int i = 1; i<=h; ++i) for (int j = 1; j<=w; ++j) O[i][j] += O[i][j - 1] + (grid[i][j] == 'O');
    for (int j = 1; j<=w; ++j) for (int i = 1; i<=h; ++i) I[i][j] += I[i - 1][j] + (grid[i][j] == 'I');

    // for (auto &v: O) {
    //     for (int &i: v) cout << i << ' ';
    //     cout << '\n';
    // }
    // cout << '\n';
    // for (auto &v: I) {
    //     for (int &i: v) cout << i << ' ';
    //     cout << '\n';
    // }

    int res = 0;
    for (int i = 1; i<=h; ++i) {
        for (int j = 1; j<=w; ++j) {
            if (grid[i][j] == 'J') {
                // cout << i << ' ' << j << ": ";
                int oc = O[i][w] - O[i][j];
                int ic = I[h][j] - O[i][j];
                // cout << oc << " x " << ic << '\n';
                res += (oc * ic);
            }
        }
    }
    cout << res << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...