Submission #402337

#TimeUsernameProblemLanguageResultExecution timeMemory
402337fadi57Bitaro the Brave (JOI19_ho_t1)C++14
100 / 100
320 ms91004 KiB
#include<bits/stdc++.h>
using namespace std;
const int mx=3002;
typedef long long ll;
int inf=1e9+10;
const int mod=1e9+7;
int n,m;

int dp[mx][mx];
int dp2[mx][mx];
string s[mx];
int main(){
cin>>n>>m;

 for(int i=0;i<n;i++){
    cin>>s[i];
 }

for(int i=0;i<n;i++){
    for(int j=m-1;j>=0;j--){
        dp[i][j]=(s[i][j]=='O')+dp[i][j+1];
    }

  }
  ll ans=0;
  for(int i=n-1;i>=0;i--){
    for(int j=m-1;j>=0;j--){
        dp2[i][j]=(s[i][j]=='I')+dp2[i+1][j];
    }

  }
  for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
      if(s[i][j]=='J'){
        ans+=dp[i][j]*dp2[i][j];
      }
    }

  }
  cout<<ans;
 }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...