結果
問題 |
No.769 UNOシミュレータ
|
ユーザー |
|
提出日時 | 2020-04-13 04:00:49 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 82 ms / 2,000 ms |
コード長 | 911 bytes |
コンパイル時間 | 2,171 ms |
コンパイル使用メモリ | 195,676 KB |
最終ジャッジ日時 | 2025-01-09 17:53:27 |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:8:23: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 8 | int n,m; scanf("%d%d",&n,&m); | ~~~~~^~~~~~~~~~~~~~ main.cpp:63:15: warning: ‘id_last’ may be used uninitialized [-Wmaybe-uninitialized] 63 | printf("%d %d\n",id_last+1,num[id_last]); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ main.cpp:10:36: note: ‘id_last’ was declared here 10 | int id=0,d=1,last=0,draw=0,id_last; | ^~~~~~~
ソースコード
#include <bits/stdc++.h> #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; int main(){ int n,m; scanf("%d%d",&n,&m); int id=0,d=1,last=0,draw=0,id_last; vector<int> num(n); rep(i,m){ string s; cin>>s; id_last=id; if(last!=0){ if(s=="drawtwo" && last==2){ num[id]++; id=(id+d+n)%n; draw+=2; continue; } else if(s=="drawfour" && last==4){ num[id]++; id=(id+d+n)%n; draw+=4; continue; } else{ num[id]-=draw; id=(id+d+n)%n; draw=0; } } id_last=id; num[id]++; if(s=="number"){ id=(id+d+n)%n; last=0; } else if(s=="drawtwo"){ id=(id+d+n)%n; last=draw=2; } else if(s=="drawfour"){ id=(id+d+n)%n; last=draw=4; } else if(s=="skip"){ id=(id+2*d+n)%n; last=0; } else{ // reverse d*=-1; id=(id+d+n)%n; last=0; } } printf("%d %d\n",id_last+1,num[id_last]); return 0; }