結果
問題 | No.2848 Birthday Hit and Blow |
ユーザー | shobonvip |
提出日時 | 2024-08-23 22:42:33 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,183 bytes |
コンパイル時間 | 310 ms |
コンパイル使用メモリ | 82,484 KB |
実行使用メモリ | 96,464 KB |
平均クエリ数 | 4.50 |
最終ジャッジ日時 | 2024-08-23 22:42:36 |
合計ジャッジ時間 | 2,624 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 427 ms
95,396 KB |
testcase_01 | RE | - |
ソースコード
# いい質問をして絞り込む def valid(t): for i in range(4): for j in range(i+1,4): if t[i] == t[j]: return False return True a = [31,29,31,30,31,30,31,31,30,31,30,31] s = [] for i in range(12): for j in range(1,a[i]+1): t = f"{str(i+1).zfill(2)}{str(j).zfill(2)}" if valid(t): s.append(t) #print(s) T = int(input()) for _ in range(T): nokori = s[::] q = 0 while len(nokori) > 1: q += 1 g = 10 ** 18 v = [[] for i in range(25)] tt = "" for i in range(10000): t = str(i).zfill(4) if not valid(t): continue tar = [0] * 10 for i in range(4): tar[int(t[i])] += 1 bunpu = [[] for i in range(25)] for x in nokori: hit = 0 blow = 0 for j in range(4): if x[j] == t[j]: hit += 1 if tar[int(x[j])]: blow += 1 blow -= hit #if x == "0823" and t == "4156": # print(hit, blow) bunpu[hit*5+blow].append(x) cmp = max([len(bunpu[y]) for y in range(25)]) if cmp < g: g = cmp v = bunpu[::] tt = t #print(cmp) if q >= 7: while True: pass print(f"? {tt}") h,b = map(int,input().split()) #print(v[h*5+b]) nokori = v[h*5+b][::] print(f"! {nokori[0]}")