#include <bits/stdc++.h>
using namespace std;
#define MAXN 3002
int w,h;
char a[MAXN][MAXN];
int suff[2][MAXN][MAXN];///0-broji suff u vrsti,1-broji suff u koloni
int main()
{
cin>>h>>w;
for (int i=1;i<=h;i++)
{
string s;cin>>s;
for (int j=1;j<=w;j++) a[i][j]=s[j-1];
}
for (int vrsta=1;vrsta<=h;vrsta++)
{
suff[0][vrsta][w+1]=0;
for (int kolona=w;kolona>=1;kolona--)
{
suff[0][vrsta][kolona]=suff[0][vrsta][kolona+1];
if (a[vrsta][kolona]=='O') suff[0][vrsta][kolona]++;
}
}
for (int kolona=1;kolona<=w;kolona++)
{
suff[1][h+1][kolona]=0;
for (int vrsta=h;vrsta>=1;vrsta--)
{
suff[1][vrsta][kolona]=suff[1][vrsta+1][kolona];
if (a[vrsta][kolona]=='I') suff[1][vrsta][kolona]++;
}
}
long long ans=0;
for (int i=1;i<=h;i++)
{
for (int j=1;j<=w;j++)
{
if (a[i][j]=='J') ans+=(long long)(suff[0][i][j]*suff[1][i][j]);
}
}
cout<<ans<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |