Submission #334400

#TimeUsernameProblemLanguageResultExecution timeMemory
334400Tahmid690Bitaro the Brave (JOI19_ho_t1)C++14
50 / 100
871 ms274436 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
    ll h,w;
    string s[3005];
    cin >> h >> w;
    for(int i=0;i<h;i++) cin >> s[i];
    unordered_map<ll,ll> rows;
    unordered_map<ll,ll> colum;
    unordered_map<ll,map<ll,ll>> rowsfin;
    unordered_map<ll,map<ll,ll>> columfin;
    
    for(int i=0;i<h;i++){
        ll x=0;
        for(int j=0;j<w;j++){
            if(s[i][j]=='O') x++;
            rowsfin[i][j+1]=x;
        }
        rows[i]=x;
       // cout << i << " " << x << endl;
    }
    //cout << endl;
    for(int i=0;i<w;i++){
        ll x=0;
        for(int j=0;j<h;j++){
            if(s[j][i]=='I') x++;
            columfin[i][j+1]=x;
        }
        colum[i]=x;
       // cout << i << " " << x << endl;
        
    }
    
    ll ans=0;
    for(ll i=0;i<h;i++){
        for(ll j=0;j<w;j++){
            if(s[i][j]=='J') ans+=((rows[i]-rowsfin[i][j])*(colum[j]-columfin[j][i]));
        }
    }
    cout << ans << endl;
    
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...