結果
| 問題 |
No.5020 Averaging
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-08-06 04:14:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,767 bytes |
| コンパイル時間 | 416 ms |
| コンパイル使用メモリ | 82,244 KB |
| 実行使用メモリ | 67,572 KB |
| スコア | 12,719,802 |
| 最終ジャッジ日時 | 2024-08-06 04:15:04 |
| 合計ジャッジ時間 | 5,123 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 50 |
ソースコード
# [テスターの仕様]
# - 入力として「テストケースの入力 → あなたの出力」の順に受け取る.
# - 出力が valid かどうか (valid でない場合はその原因),および得点を出力する.
# - X+1 行出力されない場合の挙動は未定義なので注意すること.
# - 余分な出力があるかどうかはチェックされない.(実際の提出でも,余分な出力はチェックされない)
import sys
import math
def WrongAnswer(str):
print("Wrong Answer (" + str + ")")
sys.exit(0)
# Step 1. テストケースの入力を受け取る
N = int(input())
A = [0] * (N + 1)
B = [0] * (N + 1)
for i in range(1, N+1):
A[i], B[i] = map(int, input().split())
# Step 2. あなたの出力を受け取る
X = int(input())
if X < 0 or X > 50:
WrongAnswer("X is out of range")
U = [0] * (X + 1)
V = [0] * (X + 1)
for i in range(1, X+1):
U[i], V[i] = map(int, input().split())
if U[i] == V[i]:
WrongAnswer("U[i] and V[i] are same")
elif U[i] < 1 or U[i] > N:
WrongAnswer("U[i] is out of range")
elif V[i] < 1 or V[i] > N:
WrongAnswer("V[i] is out of range")
# Step 3. シミュレーションを行う
for i in range(1, X+1):
avgA = (A[U[i]] + A[V[i]]) // 2
avgB = (B[U[i]] + B[V[i]]) // 2
A[U[i]] = avgA
A[V[i]] = avgA
B[U[i]] = avgB
B[V[i]] = avgB
# Step 4. 出力
ErrorA = abs(500000000000000000 - A[1])
ErrorB = abs(500000000000000000 - B[1])
Score = (int)(2000000.0 - 100000.0 * math.log10(1.0 * max(ErrorA, ErrorB) + 1.0))
if ErrorA == 0 and ErrorB == 0:
Score = 2000050 - X
print("Accepted!")
print("Error of A[1] = " + str(ErrorA))
print("Error of B[1] = " + str(ErrorB))
print("Score = " + str(Score))