제출 #689627

#제출 시각아이디문제언어결과실행 시간메모리
689627WarinchaiBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
337 ms121516 KiB
#include<bits/stdc++.h> using namespace std; int sumi[3005][3005]; int sumo[3005][3005]; int main(){ int h,w; cin>>h>>w; string ar[h+5]; queue<pair<int,int> >q; for(int i=0;i<h;i++){ cin>>ar[i]; for(int j=0;j<w;j++){ if(ar[i][j]=='J'){ q.push({i,j}); } } } for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ if(ar[i][j]=='O'){ sumo[i][j]++; }else if(ar[i][j]=='I'){ sumi[i][j]++; } if(i!=0){ sumi[i][j]+=sumi[i-1][j]; } if(j!=0){ sumo[i][j]+=sumo[i][j-1]; } } } long long ans=0; while(!q.empty()){ int x=q.front().first; int y=q.front().second; q.pop(); int nx=0,ny=0; if(x==0){ nx=sumi[h-1][y]; }else{ nx=sumi[h-1][y]-sumi[x-1][y]; } if(y==0){ ny=sumo[x][w-1]; }else{ ny=sumo[x][w-1]-sumo[x][y-1]; } ans+=nx*ny; } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...