結果
問題 | No.769 UNOシミュレータ |
ユーザー |
👑 |
提出日時 | 2020-02-26 00:45:05 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 85 ms / 2,000 ms |
コード長 | 2,510 bytes |
コンパイル時間 | 648 ms |
コンパイル使用メモリ | 65,152 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-22 09:34:04 |
合計ジャッジ時間 | 2,320 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
#include <iostream>using namespace std;int card[100001];int main(){int n,m;cin>>n>>m;int nw = 1;bool rev = false;int d = 0;int pl = 0;for(int i = 0; m > i; i++){string s;cin>>s;int nya = 1;//nw番の人の行動の次がnw+nya番の人if(s == "number"){if(d){//nw番の人はカードを引くcard[nw]-=pl;pl=0;d=0;//nw+1番の人が行動するnw+=(rev?-1:1);if(0 >= nw)nw+=n;else if(nw > n)nw-=n;}//numberを出すcard[nw]++;}else if(s == "drawtwo"){if(d==4){//nw番の人はカードを引くcard[nw]-=pl;pl=0;d=0;//nw+1番の人が行動するnw+=(rev?-1:1);if(0 >= nw)nw+=n;else if(nw > n)nw-=n;}d=2;pl+=2;card[nw]++;}else if(s == "drawfour"){if(d==2){//nw番の人はカードを引くcard[nw]-=pl;pl=0;d=0;//nw+1番の人が行動するnw+=(rev?-1:1);if(0 >= nw)nw+=n;else if(nw > n)nw-=n;}d=4;pl+=4;card[nw]++;}else if(s == "skip"){if(d){//nw番の人はカードを引くcard[nw]-=pl;pl=0;d=0;//nw+1番の人が行動するnw+=(rev?-1:1);if(0 >= nw)nw+=n;else if(nw > n)nw-=n;}//nw+1番の人をスキップするnya++;card[nw]++;}else if(s == "reverse"){if(d){//nw番の人はカードを引くcard[nw]-=pl;pl=0;d=0;//nw+1番の人が行動するnw+=(rev?-1:1);if(0 >= nw)nw+=n;else if(nw > n)nw-=n;}rev = (rev?false:true);card[nw]++;}if(i+1 == m){cout << nw << " " << card[nw] << endl;return 0;}//cout << nw << " " << nya << endl;nw += (rev?-1:1)*nya;if(0 >= nw)nw+=n;else if(nw > n)nw-=n;}}