#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define fi first
#define se second
constexpr ll MAXN=3e3+5,MAXV=3e5,MOD=1e9+7,INF=1e18;
ll n,m,i,j,p,k,ans,dem,st,en,cntI[MAXN][MAXN],cntO[MAXN][MAXN];
string s[MAXN];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>s[i];
ll demO=0;
for(j=1;j<=m;j++){
if(s[i][j-1]=='O')
demO++;
cntO[i][j]=demO;
}
}
for(j=1;j<=m;j++){
ll demI=0;
for(i=1;i<=n;i++){
if(s[i][j-1]=='I')
demI++;
cntI[j][i]=demI;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(s[i][j-1]=='J'){
ans+=(cntO[i][m]-cntO[i][j])*(cntI[j][n]-cntI[j][i]);
}
}
}
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |