結果
問題 | No.459 C-VS for yukicoder |
ユーザー |
![]() |
提出日時 | 2025-06-28 11:47:31 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 13 ms / 2,000 ms |
コード長 | 1,250 bytes |
コンパイル時間 | 1,291 ms |
コンパイル使用メモリ | 166,376 KB |
実行使用メモリ | 8,104 KB |
最終ジャッジ日時 | 2025-06-28 11:47:41 |
合計ジャッジ時間 | 4,035 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 58 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:65:44: warning: iteration 2 invokes undefined behavior [-Waggressive-loop-optimizations] 65 | if(ans[i][k]>=j)cout<<'#'; | ~~~~~~~~^ main.cpp:64:38: note: within this loop 64 | for(int k=1;k<=3;k++){ | ~^~~
ソースコード
#include<bits/stdc++.h> using namespace std; int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } const int N=1e5+5; int n,m,q; int s[N],cnt[N],a[N]; int ans[N][3]; char c[N]; bool b[N]; vector<int>v[N]; int main(){ // freopen("tetris.in","r",stdin); // freopen("tetris.out","w",stdout); cin>>n>>m>>q; for(int i=1;i<=n;i++){ cin>>c+1; for(int j=1;j<=m;j++){ if(c[j]=='#'){ s[j]++; } } } for(int i=1;i<=q;i++){ a[i]=read()+1; v[a[i]].push_back(i); } for(int i=1;i<=m;i++){ int l=max(1,i-2),r=i; for(int j=l;j<=r;j++){ for(int k=0;k<v[j].size();k++){ int x=v[j][k]; if(!b[x]){ if(s[i]){ s[i]--; b[x]=1; ans[x][i-j+1]=1; } } } } if(s[i]){ for(int j=l;j<=r;j++){ for(int k=0;k<v[j].size();k++){ int x=v[j][k]; if(s[i]>=3-ans[x][i-j+1]){ s[i]-=(3-ans[x][i-j+1]); ans[x][i-j+1]=3; } else { ans[x][i-j+1]+=s[i]; s[i]=0; } } } } } for(int i=1;i<=q;i++){ for(int j=1;j<=3;j++){ for(int k=1;k<=3;k++){ if(ans[i][k]>=j)cout<<'#'; else cout<<'.'; } cout<<"\n"; } } return 0; }