結果
問題 |
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); } } }