Submission #1124016

#TimeUsernameProblemLanguageResultExecution timeMemory
1124016AverageAmogusEnjoyerBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
118 ms80956 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n,m;
    cin >> n >> m;
    vector<string> grid(n);
    for (auto &x: grid)
        cin >> x;
    vector<vector<int>> orbs(n,vector<int>(m));
    for (int i=0;i<n;i++) {
        for (int j=m-1;j>=0;j--) {
            orbs[i][j]=(grid[i][j]=='O');
            if (j+1<m) orbs[i][j]+=orbs[i][j+1];
        }
    }
    vector<vector<int>> ingots(n,vector<int>(m));
    for (int i=n-1;i>=0;i--) {
        for (int j=0;j<m;j++) {
            ingots[i][j]=(grid[i][j]=='I');
            if (i+1<n) ingots[i][j]+=ingots[i+1][j];
        }
    }
    ll ans=0;
    for (int i=0;i<n;i++) {
        for (int j=0;j<m;j++) if (grid[i][j]=='J') {
            ans+=1LL*orbs[i][j]*ingots[i][j];
        }
    }
    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...