This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    long long ans=0;
    int n,m;cin>>n>>m;
    vector<string> v(n);
    for(int i=0;i<n;i++){
        cin>>v[i];
    }
    vector<vector<int>> O(n,vector<int>(m)),I(n,vector<int>(m));
    for(int i=0;i<n;i++){
        int cnt=0;
        for(int j=m-1;j>=0;j--){
            if(v[i][j]=='O'){
                cnt++;
            }
            O[i][j]=cnt;
        }
    }
    for(int i=0;i<m;i++){
        int cnt=0;
        for(int j=n-1;j>=0;j--){
            if(v[j][i]=='I'){
                cnt++;
            }
            I[j][i]=cnt;
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(v[i][j]=='J'){
                ans+=I[i][j]*O[i][j];
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |