Submission #110329

#TimeUsernameProblemLanguageResultExecution timeMemory
110329Leonardo_PaesBitaro the Brave (JOI19_ho_t1)C++11
100 / 100
799 ms150904 KiB
#include <bits/stdc++.h>

using namespace std;

const int maxn = 3e3+10;

char mat[maxn][maxn];

long long prefi[maxn][maxn], prefo[maxn][maxn];

int main(){

    int h, w;

    cin >> h >> w;

    for(int i=1; i<=h; i++){
        for(int j=1; j<=w; j++){
            cin >> mat[i][j];
        }
    }

    for(int i=1; i<=h; i++){
        for(int j=w; j>=1; j--){
            if(mat[i][j]=='O')prefo[i][j]=1;
            prefo[i][j]+=prefo[i][j+1];
        }
    }

    for(int i=h; i>=1; i--){
        for(int j=1; j<=w; j++){
            if(mat[i][j]=='I')prefi[i][j]=1;
            prefi[i][j]+=prefi[i+1][j];
        }
    }

    long long ans=0;

    for(int i=1; i<=h; i++){
        for(int j=1; j<=w; j++){
            if(mat[i][j]=='J'){
                ans+=prefi[i][j]*prefo[i][j];
            }
        }
    }

    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...