Submission #1358816

#TimeUsernameProblemLanguageResultExecution timeMemory
1358816saba_nayeuriBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
212 ms79816 KiB
#include <bits/stdc++.h>
using namespace std;
const int MX=3005;
char a[MX][MX];
int R[MX][MX],D[MX][MX];
int main()
{
  int h,w;
  cin>>h>>w;
  for(int i=0;i<h;i++)cin>>a[i];
  for(int i=0;i<h;i++)
  {
    R[i][w]=0;
    for(int j=w-1;j>=0;j--)R[i][j]=R[i][j+1]+(a[i][j]=='O');
  }
  for(int j=0;j<w;j++)
  {
    D[h][j]=0;
    for(int i=h-1;i>=0;i--)D[i][j]=D[i+1][j]+(a[i][j]=='I');
  }
  long long ans=0;
  for(int i=0;i<h;i++)
  {
    for(int j=0;j<w;j++)
    {
      if(a[i][j]=='J')
      {
        ans+=(long long)R[i][j+1]*D[i+1][j];
      }
    }
  }
  cout<<ans<<'\n';
  return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...