結果
問題 |
No.5005 3-SAT
|
ユーザー |
|
提出日時 | 2022-06-24 12:21:00 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,997 ms / 2,000 ms |
コード長 | 1,141 bytes |
コンパイル時間 | 349 ms |
実行使用メモリ | 95,696 KB |
スコア | 179 |
最終ジャッジ日時 | 2022-06-24 12:24:27 |
合計ジャッジ時間 | 205,967 ms |
ジャッジサーバーID (参考情報) |
judge14 / judge13 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 100 |
ソースコード
import sys input = lambda: sys.stdin.readline().rstrip() import random from time import time random.seed = 1 randint = random.randint random = random.random # ----------------------- # abcpqr = [list(map(int, input().split())) for _ in range(2048)] STIME = time() li = [[0, 0] for _ in range(2048)] for a,b,c,p,q,r in abcpqr: li[a][p] += 1 li[b][q] += 1 li[c][r] += 1 def make_ans_init() -> list: ans = [0] * 2048 for i in range(2048): if li[i][0] < li[i][1]: ans[i] = 1 else: ans[i] = 0 return ans def eval_ans(ans) -> int: ret = 0 for a,b,c,p,q,r in abcpqr: if ans[a] == p and ans[b] == q and ans[c] == r: ret += 1 return ret def make_ans_yamanobori(ans): preans = ans[:] for _ in range(10): indx = randint(0, 2047) ans[indx] = 1 - ans[indx] return preans def main(): ans = make_ans_init() vestscore = eval_ans(ans) while time()-STIME < 1.9: nans = make_ans_yamanobori(ans) score = eval_ans(nans) if score > vestscore: ans = nans[:] vestscore = score print(''.join(map(str, reversed(ans)))) print(vestscore, file=sys.stderr) main()