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;
long long int m,n,i,j,dp1[3010][3010],dp2[3010][3010],ans;
string s[3010];
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>m>>n;
for (i=1;i<m+1;i++) cin>>s[i-1];
for (i=1;i<m+1;i++)
{
dp1[i][n]=0;
for (j=n-1;j>0;j--)
if (s[i-1][j]=='O') dp1[i][j]=dp1[i][j+1]+1;
else dp1[i][j]=dp1[i][j+1];
}
for (i=1;i<n+1;i++)
{
dp2[m][i]=0;
for (j=m-1;j>0;j--)
if (s[j][i-1]=='I') dp2[j][i]=dp2[j+1][i]+1;
else dp2[j][i]=dp2[j+1][i];
}
ans=0;
for (i=1;i<m+1;i++) for (j=1;j<n+1;j++) if (s[i-1][j-1]=='J')
ans=ans+dp1[i][j]*dp2[i][j];
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... |