Submission #256351

#TimeUsernameProblemLanguageResultExecution timeMemory
256351Osama_AlkhodairyBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
294 ms89336 KiB
#include <bits/stdc++.h>
using namespace std;
#define finish(x) return cout << x << endl, 0
#define ll long long

const int N = 3001;

int n, m, g[N][N], h[N][N];
vector <string> a;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    a.resize(n);
    for(auto &i : a) cin >> i;
    for(int i = 0 ; i < n ; i++){
        for(int j = m - 1 ; j >= 0 ; j--){
            g[i][j] = g[i][j + 1] + (a[i][j] == 'O');
        }
    }
    for(int j = 0 ; j < m ; j++){
        for(int i = n - 1 ; i >= 0 ; i--){
            h[i][j] = h[i + 1][j] + (a[i][j] == 'I');
        }
    }
    ll ans = 0;
    for(int i = 0 ; i < n ; i++){
        for(int j = 0 ; j < m ; j++){
            if(a[i][j] == 'J'){
                ans += 1LL * g[i][j] * h[i][j];
            }
        }
    }
    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...