結果
問題 | No.5021 Addition Pyramid |
ユーザー |
![]() |
提出日時 | 2025-02-25 22:07:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,839 ms / 2,000 ms |
コード長 | 1,423 bytes |
コンパイル時間 | 377 ms |
コンパイル使用メモリ | 82,240 KB |
実行使用メモリ | 79,176 KB |
スコア | 34,828,731 |
最終ジャッジ日時 | 2025-02-25 22:09:05 |
合計ジャッジ時間 | 96,147 ms |
ジャッジサーバーID (参考情報) |
judge7 / judge3 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
from time import * start_time = time() from random import * from math import * from sys import * def error2(*args, end="\n"): print(*args, end=end, file=stderr) input = stdin.readline MAX = 100000000 N = int(input()) score = 10**10 # 誤差関数 def error(a, b): return min(abs(a - b), MAX - abs(a - b)) tmp = [] for i in range(N): tmp.append(list(map(int,input().split()))) ans = [] for i in range(N): ans.append([0]*(i+1)) ans[-1] = tmp[-1][:] def build(): tmpgosa = 0 for i in range(N): tmpgosa = max(tmpgosa,error(ans[-1][i],tmp[-1][i])) for i in range(N-2,-1,-1): for j in range(i+1): ans[i][j] = (ans[i+1][j] + ans[i+1][j+1])%100000000 tmpgosa = max(tmpgosa,error(ans[i][j],tmp[i][j])) return tmpgosa score = build() cnt = 0 while time()-start_time < 1.8: L = randint(0,N) R = randint(0,N) if L == R: continue elif L > R: L,R = R,L before = ans[-1][:] for j in range(L,R): ans[-1][j] = randint(0,99999999) nex = build() temp = 10000 if nex < score: score = nex else: ans[-1] = before """ else: diff = abs(nex-score)*(-1) prob = exp(diff/temp) try1 = random() if try1 < prob: score = nex else: ans[-1] = before """ cnt += 1 print(*ans[-1]) error2(cnt)