結果
問題 | No.307 最近色塗る問題多くない? |
ユーザー |
|
提出日時 | 2019-10-14 03:56:03 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 202 ms / 4,000 ms |
コード長 | 908 bytes |
コンパイル時間 | 857 ms |
コンパイル使用メモリ | 75,776 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-21 13:22:56 |
合計ジャッジ時間 | 3,456 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 36 |
コンパイルメッセージ
main.cpp:8:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 8 | main() | ^~~~
ソースコード
#include<iostream> #include<queue> using namespace std; int used[200][200]; int A[200][200]; int H,W; int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0}; main() { cin>>H>>W; for(int i=0;i<H;i++)for(int j=0;j<W;j++)cin>>A[i][j]; int Q;cin>>Q; bool flag=false,tx; for(int t=0;t++<Q;) { int r,c,x;cin>>r>>c>>x;r--,c--; if(flag) { tx=x; continue; } int y=A[r][c]; if(x==y)continue; A[r][c]=x; queue<pair<int,int> >P; P.push(make_pair(r,c)); used[r][c]=t; int cnt=0; while(!P.empty()) { int nx=P.front().first,ny=P.front().second;P.pop(); cnt++; for(int R=0;R<4;R++) { int tx=nx+dx[R],ty=ny+dy[R]; if(tx>=0&&ty>=0&&tx<H&&ty<W&&used[tx][ty]<t&&A[tx][ty]==y) { A[tx][ty]=x; used[tx][ty]=t; P.push(make_pair(tx,ty)); } } } if(cnt==H*W)flag=true,tx=x; } for(int i=0;i<H;i++)for(int j=0;j<W;j++)cout<<(flag?tx:A[i][j])<<(j==W-1?"\n":" "); }