Submission #520840

#TimeUsernameProblemLanguageResultExecution timeMemory
520840krit3379Dango Maker (JOI18_dango_maker)C++17
33 / 100
263 ms89744 KiB
#include<bits/stdc++.h> using namespace std; #define N 3005 struct A{ int x,y,st; }; int ok[2][N][N],di[2][2]={{0,0},{1,-1}},dj[2][2]={{1,-1},{0,0}},cnt[2],sz,ans; char s[N][N]; bitset<N*N> vis; bitset<N> ch[N]; queue<A> q; int main(){ int n,m,i,j,k,x,y,st; scanf("%d %d",&n,&m); for(i=1;i<=n;i++){ scanf(" %s",s[i]+1); } for(i=1;i<=n;i++){ for(j=3;j<=m;j++){ if(s[i][j-2]=='R'&&s[i][j-1]=='G'&&s[i][j]=='W')ok[0][i][j]=ok[0][i][j-1]=ok[0][i][j-2]=++sz; } } for(j=1;j<=m;j++){ for(i=3;i<=n;i++){ if(s[i-2][j]=='R'&&s[i-1][j]=='G'&&s[i][j]=='W')ok[1][i][j]=ok[1][i-1][j]=ok[1][i-2][j]=++sz; } } for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(ch[i][j]||(!ok[0][i][j]&&!ok[1][i][j]))continue; cnt[0]=cnt[1]=0; if(ok[0][i][j])st=0; else st=1; q.push({i,j,st}); ch[i][j]=true; while(!q.empty()){ x=q.front().x; y=q.front().y; st=q.front().st; q.pop(); if(!vis[ok[st][x][y]])vis[ok[st][x][y]]=true,cnt[st]++; for(k=0;k<2;k++){ int X=x+di[st][k],Y=y+dj[st][k]; if(X>0&&X<=n&&Y>0&&Y<=m&&!ch[X][Y]&&ok[st][x][y]==ok[st][X][Y])q.push({X,Y,st}),ch[X][Y]=true; } if(ok[1-st][x][y]&&!vis[ok[1-st][x][y]])q.push({x,y,1-st}),cnt[1-st]++,vis[ok[1-st][x][y]]=true; } ans+=max(cnt[0],cnt[1]); } } printf("%d",ans); return 0; }

Compilation message (stderr)

dango_maker.cpp: In function 'int main()':
dango_maker.cpp:17:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |     scanf("%d %d",&n,&m);
      |     ~~~~~^~~~~~~~~~~~~~~
dango_maker.cpp:19:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |         scanf(" %s",s[i]+1);
      |         ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...