結果
問題 | No.769 UNOシミュレータ |
ユーザー |
![]() |
提出日時 | 2019-01-04 04:30:35 |
言語 | Go (1.23.4) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,245 bytes |
コンパイル時間 | 15,856 ms |
コンパイル使用メモリ | 222,940 KB |
実行使用メモリ | 5,504 KB |
最終ジャッジ日時 | 2024-11-22 09:05:42 |
合計ジャッジ時間 | 14,795 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 22 WA * 1 |
ソースコード
package mainimport ("bufio""fmt""os""strconv""strings")func main() {run()}type state struct {n intplayers map[int]intwho intprevDraw intprev stringd int}func (s *state) next() {s.who = (s.who + s.d + s.n) % s.n}func (s *state) put() {s.players[s.who]++}func (s *state) draw() {s.players[s.who] -= s.prevDraws.prevDraw = 0}func run() {setSpace()n := readN()m := readN()s := &state{n: n,players: make(map[int]int, n),d: 1,}for i := 0; i < m; i++ {card := read()if s.prev != card && strings.HasPrefix(s.prev, "draw") {s.draw()s.next()}s.put()switch card {case "drawtwo":s.prevDraw += 2case "drawfour":s.prevDraw += 4case "skip":s.next()case "reverse":s.d *= -1}s.prev = cards.next()}// 一人前に戻るs.who = (s.who - s.d + s.n) % s.nfmt.Printf("%d %d\n", s.who+1, s.players[s.who])}var sc = bufio.NewScanner(os.Stdin)func setSpace() {sc.Split(bufio.ScanWords)}func setLine() {sc.Split(bufio.ScanLines)}func read() string {sc.Scan()return sc.Text()}func readN() int {n, err := strconv.Atoi(read())if err != nil {panic(err)}return n}