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;
#define ll long long int
#define pii pair<long long int,long long int>
#define vi vector<long long int >
#define vvi vector<vector< long long int>>
#define MP make_pair
#define PB push_back
#define pb pop_back
#define PF push_front
#define pf pop_front
#define MOD 1000000007
#define MT make_tuple
ll n,m,r[3001][3001],c[3001][3001];
ll ans = 0;
string s[3001];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>n>>m;
for(ll i=0;i<n;i++)
{
cin>>s[i];
}
for(ll i=0;i<n;i++)
{
for(ll j=0;j<m;j++)
{
r[i][j]=0;
c[i][j]=0;
if(s[i][j]=='O')
r[i][j]++;
if(s[i][j]=='I')
c[i][j]++;
}
r[i][m]=0;
}
for(ll j=0;j<m;j++)
c[n][j]=0;
for(ll i=0;i<n;i++)
{
for(ll j=m-1;j>=0;j--)
{
r[i][j]+=r[i][j+1];
}
}
for(ll j=0;j<m;j++)
{
for(ll i=n-1;i>=0;i--)
c[i][j]+=c[i+1][j];
}
for(ll i=0;i<n;i++)
{
for(ll j=0;j<m;j++)
{
if(s[i][j]=='J')
ans+=r[i][j]*c[i][j];
}
}
cout<<ans<<"\n";
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... |