結果
| 問題 |
No.769 UNOシミュレータ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-04-26 20:04:34 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,411 bytes |
| コンパイル時間 | 4,145 ms |
| コンパイル使用メモリ | 77,816 KB |
| 実行使用メモリ | 56,516 KB |
| 最終ジャッジ日時 | 2024-11-22 09:18:30 |
| 合計ジャッジ時間 | 14,899 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 22 WA * 1 |
ソースコード
import java.io.*;
import java.util.Scanner;
public class Main_yukicoder769 {
private static Scanner sc;
private static Printer pr;
private static void solve() {
int n = sc.nextInt();
int m = sc.nextInt();
int[] num = new int[n];
int win = 0;
int d = 1;
int dup = 0;
String prev = "";
for (int i = 0; i < m; i++) {
String l = sc.next();
if (prev.equals("drawtwo") && !l.equals(prev)) {
num[win] += 2 * dup;
dup = 0;
win += d;
} else if (prev.equals("drawfour") && !l.equals(prev)) {
num[win] += 4 * dup;
dup = 0;
win += d;
}
win = (win + n) % n;
switch (l) {
case "number":
num[win]--;
win += d;
break;
case "drawtwo":
num[win]--;
dup++;
win += d;
break;
case "drawfour":
num[win]--;
dup++;
win += d;
break;
case "skip":
num[win]--;
win += 2 * d;
break;
case "reverse":
num[win]--;
d = -d;
win += d;
break;
}
win = (win + n) % n;
prev = l;
}
win -= d;
win = (win + n) % n;
pr.printf("%d %d%n", win + 1, -num[win]);
}
// ---------------------------------------------------
public static void main(String[] args) {
sc = new Scanner(System.in);
pr = new Printer(System.out);
solve();
pr.close();
sc.close();
}
static class Printer extends PrintWriter {
Printer(OutputStream out) {
super(out);
}
}
}