結果

問題 No.5005 3-SAT
ユーザー titan23
提出日時 2022-06-24 12:15:35
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 910 bytes
コンパイル時間 472 ms
実行使用メモリ 82,672 KB
スコア 0
最終ジャッジ日時 2022-06-24 12:15:55
合計ジャッジ時間 17,227 ms
ジャッジサーバーID
(参考情報)
judge14 / judge11
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other WA * 100
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = lambda: sys.stdin.readline().rstrip()
import random
from time import time

random.seed = 1
randint = random.randint
random = random.random
STIME = time()

#  -----------------------  #

abcpqr = [list(map(int, input().split())) for _ in range(2048)]


def make_ans_init() -> list:
  return [1 if random()<0.5 else 0 for _ in range(2048)]

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, 2048)
    ans[indx] = 1 - ans[indx]
  return preans

def main():
  ans = make_ans_init()
  vestscore = eval_ans(ans)
  while time() < 1.9:
    nans = make_ans_yamanobori(ans)
    score = eval_ans(nans)
    if score > vestscore:
      ans = nans[:]
      vestscore = score
  print(''.join(map(str, reversed(ans))))
0