Submission #720023

#TimeUsernameProblemLanguageResultExecution timeMemory
720023vjudge1Bitaro the Brave (JOI19_ho_t1)C++17
100 / 100
309 ms150236 KiB
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;

const int N=3001;
int n,m;
ll cnt;
string mp[N],s;
ll O[N][N],I[N][N];

int main(){
  ios_base::sync_with_stdio(0),cin.tie(0);
  cin >> n >> m;
  for(int i=1; i<=n; i++){
    cin >> s;
    mp[i]="x"+s;
  }
  for(int i=1; i<=n; i++){
    for(int j=m; j>=1; j--){
      O[i][j]+=O[i][j+1];
      if(mp[i][j]=='O')O[i][j]++;
    }
  }
  for(int j=1; j<=m; j++){
    for(int i=n; i>=1; i--){
      I[i][j]+=I[i+1][j];
      if(mp[i][j]=='I')I[i][j]++;
    }
  }
  for(int i=1; i<=n; i++){
    for(int j=1; j<=m; j++){
      if(mp[i][j]=='J'){
        cnt+=O[i][j]*I[i][j];
      }
    }
  }
  cout << cnt;

  return 0;
}

/*
J--O
| /
I
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...