結果
| 問題 | No.3418 【絶望】30個並列ごちゃ混ぜHit&Blowで遊ぼう! |
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-12-25 12:01:05 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 253 ms / 5,000 ms |
| コード長 | 1,989 bytes |
| 記録 | |
| コンパイル時間 | 13,012 ms |
| コンパイル使用メモリ | 240,056 KB |
| 実行使用メモリ | 26,356 KB |
| スコア | 9,946,809 |
| 平均クエリ数 | 531.91 |
| 最終ジャッジ日時 | 2025-12-25 12:01:43 |
| 合計ジャッジ時間 | 37,038 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
| 純コード判定しない問題か言語 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 100 |
ソースコード
package main
import (
. "fmt"
. "math/rand"
. "sort"
)
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 xxi, xs := range xxs {
ccc := make([]int, 60)
omits := [][]int{}
for pi, 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
}
if pi == 0 {
ccc[hi+bi]++
}
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)
}
}
nnn := make([]int, 10)
for _, x := range xs {
nnn[x]++
}
txxs := xxs[xxi+1:]
Slice(txxs, func(i, j int) bool {
var c1, c2 int
for _, x := range txxs[i] {
c1 += nnn[x]
}
for _, x := range txxs[j] {
c2 += nnn[x]
}
return ccc[c1] > ccc[c2]
})
}
}
ID 21712