Submission #722248

#TimeUsernameProblemLanguageResultExecution timeMemory
722248joelgun14Bitaro the Brave (JOI19_ho_t1)C++17
100 / 100
623 ms86540 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m;
    cin >> n >> m;
    char a[n + 1][m + 1];
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= m; ++j)
            cin >> a[i][j];
    // find count o di kanan dan count i di bawah
    int x[n + 2][m + 2], y[n + 2][m + 2];
    memset(x, 0, sizeof(x));
    memset(y, 0, sizeof(y));
    for(int i = 1; i <= n; ++i) {
        for(int j = m; j >= 1; --j) {
            x[i][j] = x[i][j + 1] + (a[i][j] == 'O');
        }
    }
    for(int i = n; i >= 1; --i) {
        for(int j = 1; j <= m; ++j) {
            y[i][j] = y[i + 1][j] + (a[i][j] == 'I');
        }
    }
    long long ans = 0;
    for(int i = 1; i <= n; ++i) {
        for(int j = 1; j <= m; ++j) {
            if(a[i][j] == 'J')
                ans += 1ll * x[i][j] * y[i][j];
        }
    }
    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...