結果

問題 No.769 UNOシミュレータ
ユーザー kikage
提出日時 2020-04-10 21:20:19
言語 C++11
(gcc 13.3.0)
結果
AC  
実行時間 91 ms / 2,000 ms
コード長 1,419 bytes
コンパイル時間 520 ms
コンパイル使用メモリ 62,172 KB
実行使用メモリ 12,928 KB
最終ジャッジ日時 2024-11-22 09:35:46
合計ジャッジ時間 2,196 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <iostream>
#include <vector>
using namespace std;
int main(){
int N,M,id=0;
cin >> N >> M;
vector<int> card(N,0);
vector<string> log(M+1);
for(int l=0;l<M;l++)cin >> log[l];
for(int l=0,dir=1;;l++){
if(log[l]=="number"){
card[id]--;
if(l+1==M)break;
id=(id+dir+N)%N;
}
if(log[l]=="drawtwo"){
int p=0;
while(log[l+p]=="drawtwo"){
card[id]--;
id=(id+N+dir)%N;
p++;
}
card[id]+=2*p;
l+=p-1;
if(l+1==M){
id=(id-dir+N)%N;
break;
}
id=(id+N+dir)%N;
}
if(log[l]=="drawfour"){
int p=0;
while(log[l+p]=="drawfour"){
card[id]--;
id=(id+N+dir)%N;
p++;
}
card[id]+=4*p;
l+=p-1;
if(l+1==M){
id=(id-dir+N)%N;
break;
}
id=(id+N+dir)%N;
}
if(log[l]=="skip"){
card[id]--;
if(l+1==M)break;
id=(id+2*dir+N)%N;
}
if(log[l]=="reverse"){
card[id]--;
if(l+1==M)break;
dir=-dir;id=(id+dir+N)%N;
}
}
cout << id+1 << " "<< -card[id] << endl;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0