結果
問題 | No.769 UNOシミュレータ |
ユーザー |
|
提出日時 | 2020-04-10 13:13:44 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 2,952 bytes |
コンパイル時間 | 171 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 11,776 KB |
最終ジャッジ日時 | 2024-11-22 09:35:36 |
合計ジャッジ時間 | 2,308 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | RE * 23 |
ソースコード
import sys, refrom collections import deque, defaultdict, Counterfrom math import ceil, sqrt, hypot, factorial, pi, sin, cos, radiansfrom itertools import accumulate, permutations, combinations, productfrom operator import itemgetter, mul, addfrom copy import deepcopyfrom string import ascii_lowercase, ascii_uppercase, digitsfrom bisect import bisect, bisect_leftfrom fractions import gcdfrom heapq import heappush, heappopfrom functools import reducedef input(): return sys.stdin.readline().strip()def INT(): return int(input())def MAP(): return map(int, input().split())def LIST(): return list(map(int, input().split()))def ZIP(n): return zip(*(MAP() for _ in range(n)))sys.setrecursionlimit(10 ** 9)INF = float('inf')mod = 10 ** 9 + 7N, M = MAP()lis = [input() for _ in range(M)]players = list(range(1, N+1))now = 0reverse = 0skipped = Falsedraw_two_count = 0draw_four_count = 0all_cards = defaultdict(int)extra_cards = defaultdict(int)for i, l in enumerate(lis):if l == "number":if draw_two_count:extra_cards[players[now]] += 2*draw_two_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_two_count = 0elif draw_four_count:extra_cards[players[now]] += 4*draw_four_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_four_count = 0all_cards[players[now]] += 1elif l == "drawtwo":if draw_four_count:extra_cards[players[now]] += 4*draw_four_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_four_count = 0all_cards[players[now]] += 1draw_two_count += 1elif l == "drawfour":if draw_two_count:extra_cards[players[now]] += 2*draw_two_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_two_count = 0all_cards[players[now]] += 1draw_four_count += 1elif l == "skip":if draw_two_count:extra_cards[players[now]] += 2*draw_two_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_two_count = 0elif draw_four_count:extra_cards[players[now]] += 4*draw_four_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_four_count = 0all_cards[players[now]] += 1skipped = Trueelif l == "reverse":if draw_two_count:extra_cards[players[now]] += 2*draw_two_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_two_count = 0elif draw_four_count:extra_cards[players[now]] += 4*draw_four_countif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Ndraw_four_count = 0all_cards[players[now]] += 1reverse ^= 1if i == M-1:breakif reverse:now = (now-1-1*skipped)%Nelse:now = (now+1+1*skipped)%Nskipped = Falseprint(players[now], all_cards[players[now]]-extra_cards[players[now]])