結果

問題 No.437 cwwゲーム
ユーザー tsuchinagatsuchinaga
提出日時 2019-03-27 09:11:09
言語 Go
(1.22.1)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 987 bytes
コンパイル時間 13,603 ms
コンパイル使用メモリ 238,840 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-04-20 13:22:47
合計ジャッジ時間 12,928 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 1 ms
5,248 KB
testcase_02 AC 1 ms
5,376 KB
testcase_03 AC 1 ms
5,376 KB
testcase_04 AC 1 ms
5,376 KB
testcase_05 AC 1 ms
5,376 KB
testcase_06 AC 1 ms
5,376 KB
testcase_07 AC 2 ms
5,376 KB
testcase_08 AC 1 ms
5,376 KB
testcase_09 AC 2 ms
5,376 KB
testcase_10 AC 2 ms
5,376 KB
testcase_11 AC 1 ms
5,376 KB
testcase_12 AC 1 ms
5,376 KB
testcase_13 AC 2 ms
5,376 KB
testcase_14 AC 1 ms
5,376 KB
testcase_15 AC 2 ms
5,376 KB
testcase_16 AC 1 ms
5,376 KB
testcase_17 AC 1 ms
5,376 KB
testcase_18 AC 1 ms
5,376 KB
testcase_19 AC 1 ms
5,376 KB
testcase_20 AC 1 ms
5,376 KB
testcase_21 AC 1 ms
5,376 KB
testcase_22 AC 1 ms
5,376 KB
testcase_23 AC 2 ms
5,376 KB
testcase_24 AC 1 ms
5,376 KB
testcase_25 AC 1 ms
5,376 KB
testcase_26 AC 1 ms
5,376 KB
testcase_27 AC 2 ms
5,376 KB
testcase_28 AC 1 ms
5,376 KB
testcase_29 AC 1 ms
5,376 KB
testcase_30 AC 1 ms
5,376 KB
testcase_31 AC 1 ms
5,376 KB
testcase_32 AC 1 ms
5,376 KB
testcase_33 AC 1 ms
5,376 KB
testcase_34 AC 1 ms
5,376 KB
testcase_35 AC 1 ms
5,376 KB
testcase_36 AC 1 ms
5,376 KB
testcase_37 AC 1 ms
5,376 KB
testcase_38 AC 2 ms
5,376 KB
testcase_39 AC 1 ms
5,376 KB
testcase_40 AC 1 ms
5,376 KB
testcase_41 AC 1 ms
5,376 KB
testcase_42 AC 1 ms
5,376 KB
testcase_43 AC 2 ms
5,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import "fmt"

func main() {
	var n string
	var ans int
	_, _ = fmt.Scan(&n)
	r := []rune(n)

	type cww struct {
		score   int
		indexes []int
	}
	cwws := make([]cww, 0)
	for i := 0; i < len(r)-2; i++ {
		if r[i] == '0' {
			continue
		}

		for j := i + 1; j < len(r)-1; j++ {
			if r[i] == r[j] {
				continue
			}

			for k := j + 1; k < len(r); k++ {
				if r[j] == r[k] {
					c := cww{int(r[i]-'0')*100 + int(r[j]-'0')*10 + int(r[k]-'0'), []int{i, j, k}}

					for _, p := range cwws {
						add := true
						for _, in := range p.indexes {
							if in == i || in == j || in == k {
								add = false
								break
							}
						}
						if add {
							cwws = append(cwws, cww{p.score + c.score, append([]int{i, j, k}, p.indexes...)})
							if ans < p.score+c.score {
								ans = p.score + c.score
							}
						}
					}

					cwws = append(cwws, c)
					if ans < c.score {
						ans = c.score
					}
				}
			}
		}
	}

	// fmt.Println(cwws)
	fmt.Println(ans)
}
0