Submission #717563

#TimeUsernameProblemLanguageResultExecution timeMemory
717563vjudge1Bitaro the Brave (JOI19_ho_t1)C++17
100 / 100
359 ms104460 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

vector<pii> posJ;
vector<vector<int> > cntO(3010, vector<int> (3010, 0)), cntI(3010, vector<int> (3010, 0));
int n, m;

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    cin >> n >> m;
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= m; j++) {
            char c; cin >> c;
            if(c == 'J') posJ.push_back({i, j});
            else if(c == 'O') cntO[i][j]++;
            else cntI[i][j]++;
        }
    }
    for(int i = 1; i <= n; i++) {
        for(int l = m - 1; l >= 1; l--) {
            cntO[i][l] += cntO[i][l + 1]; 
        }
    }
    for(int j = 1; j <= m; j++) {
        for(int k = n - 1; k >= 1; k--) {
            cntI[k][j] += cntI[k + 1][j];
        }
    }
    ll res = 0;
    for(auto [i, j] : posJ) {
        res += (cntO[i][j + 1] * cntI[i + 1][j]);
    }
    cout << res << '\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...