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 <iostream>
#include <algorithm>
#define ll long long
#define ld long double
#define f first
#define s second
#define mp make_pair
#define pb push_back
#define vll vector<ll>
#define pll pair<ll,ll>
using namespace std;
const ll N = 5e5+100;
const ll MOD = 1e9+7;
char grid[3005][3005];
ll orb[3005][3005];
ll ing[3005][3005];
int main()
{
ios_base::sync_with_stdio(0);
//cin.tie(0);
ll n,m;
cin>>n>>m;
ll ans =0;
for(int i =1;i<=n;i++)
for(int j = 1;j<=m;j++)
cin>>grid[i][j];
for(int i =1;i<=n;i++){
for(int j =1;j<=m;j++){
orb[i][j] = orb[i][j-1];
if(grid[i][j] == 'O') orb[i][j]++;
}
}
for(int i =1;i<=m;i++){
for(int j =1;j<=n;j++) {
ing[j][i] = ing[j-1][i];
if(grid[j][i] =='I') ing[j][i]++;
}
}
for(int i =1;i<=n;i++){
for(int j =1;j<=m;j++){
if(grid[i][j] == 'J'){
ll o = orb[i][m]-orb[i][j];
ll inglets = ing[n][j] - ing[i][j];
ans += (o*inglets);
}
}
}
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... |