結果
問題 |
No.197 手品
|
ユーザー |
|
提出日時 | 2016-02-24 03:05:04 |
言語 | Go (1.23.4) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,256 bytes |
コンパイル時間 | 13,828 ms |
コンパイル使用メモリ | 224,804 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-27 13:18:12 |
合計ジャッジ時間 | 14,382 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 29 WA * 14 |
ソースコード
package main import ( "bufio" "fmt" "os" "strconv" "strings" ) var sc = bufio.NewScanner(os.Stdin) func main() { sc.Split(bufio.ScanWords) b := nextLine() n := nextInt() a := nextLine() c1, c2 := strings.Count(b, "o"), strings.Count(a, "o") if c1 != c2 { fmt.Println("SUCCESS") return } if n == 0 && b == a { fmt.Println("FAILURE") return } if n == 0 && b != a { fmt.Println("SUCCESS") return } dp := make(map[string]bool) dp[b] = true mod := -1 for i := 0; i < n && i < 6; i++ { next := make(map[string]bool) for k := range dp { next[string([]byte{k[1], k[0], k[2]})] = true next[string([]byte{k[0], k[2], k[1]})] = true } dp = next if dp[a] { mod = (n - i - 1) % 2 break } } if mod == -1 { fmt.Println("SUCCESS") return } if mod%2 == 0 { fmt.Println("FAILURE") return } fmt.Println("SUCCESS") } func nextLine() string { sc.Scan() return sc.Text() } func nextInt() int { i, _ := strconv.Atoi(nextLine()) return i } func nextInt64() int64 { i, _ := strconv.ParseInt(nextLine(), 10, 64) return i } func nextUint64() uint64 { i, _ := strconv.ParseUint(nextLine(), 10, 64) return i } func nextFloat() float64 { f, _ := strconv.ParseFloat(nextLine(), 64) return f }