結果
| 問題 |
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()