結果
| 問題 | No.3418 【絶望】30個並列ごちゃ混ぜHit&Blowで遊ぼう! |
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-12-25 11:53:57 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 214 ms / 5,000 ms |
| コード長 | 1,629 bytes |
| 記録 | |
| コンパイル時間 | 12,251 ms |
| コンパイル使用メモリ | 236,224 KB |
| 実行使用メモリ | 26,356 KB |
| スコア | 9,945,395 |
| 平均クエリ数 | 546.05 |
| 最終ジャッジ日時 | 2025-12-25 11:54:36 |
| 合計ジャッジ時間 | 37,522 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
| 純コード判定しない問題か言語 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 100 |
ソースコード
package main
import (
. "fmt"
. "math/rand"
)
func main() {
perms := [][]int{}
for a := 0; a < 5; a++ {
for b := 0; b < 5; b++ {
if a == b {
continue
}
for c := 0; c < 5; c++ {
if a == c || b == c {
continue
}
for d := 0; d < 5; d++ {
if a == d || b == d || c == d {
continue
}
for e := 0; e < 5; e++ {
if a == e || b == e || c == e || d == e {
continue
}
perms = append(perms, []int{a, b, c, d, e})
}
}
}
}
}
Shuffle(len(perms), func(i, j int) {
perms[i], perms[j] = perms[j], perms[i]
})
xxs := [][]int{}
for a := 0; a <= 9; a++ {
for b := a + 1; b <= 9; b++ {
for c := b + 1; c <= 9; c++ {
for d := c + 1; d <= 9; d++ {
for e := d + 1; e <= 9; e++ {
xs := []int{a, b, c, d, e}
xxs = append(xxs, xs)
}
}
}
}
}
Shuffle(len(xxs), func(i, j int) {
xxs[i], xxs[j] = xxs[j], xxs[i]
})
for _, xs := range xxs {
omits := [][]int{}
for _, p := range perms {
ok := true
for _, omp := range omits {
for i, pp := range p {
if omp[i] == pp {
ok = false
break
}
}
}
if !ok {
continue
}
for _, j := range p {
Print(xs[j])
}
Println()
fin := false
cnt := 0
mm := make([]int, 60)
for i := 0; i < 30; i++ {
var hi, bi int
Scan(&hi, &bi)
if i == 0 && hi == 5 && bi == 0 {
fin = true
}
mm[hi*10+bi]++
if hi != 5 && hi+bi == 5 {
cnt++
}
}
if fin {
return
}
if cnt == 0 {
break
}
if cnt == 1 && mm[5] > 0 {
omits = append(omits, p)
}
}
}
}
ID 21712