結果
問題 | No.5020 Averaging |
ユーザー |
![]() |
提出日時 | 2024-02-25 13:15:01 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 50 ms / 1,000 ms |
コード長 | 871 bytes |
コンパイル時間 | 400 ms |
コンパイル使用メモリ | 81,700 KB |
実行使用メモリ | 64,048 KB |
スコア | 16,045,910 |
最終ジャッジ日時 | 2024-02-25 13:15:06 |
合計ジャッジ時間 | 5,033 ms |
ジャッジサーバーID (参考情報) |
judge10 / judge15 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
#ver1#一番答えが大きくなるものを選ぶ(貪欲)N=int(input())A=[]B=[]cons=5*10**17for _ in range(N):a,b=map(int,input().split())A.append(a)B.append(b)op_cnt=0#costは低ければ低いほどよいdef calculate_cost(a,b):return max(abs(a-cons),abs(b-cons))def op(u,v):global Aglobal Ba,b=A[u],A[v]c,d=B[u],B[v]A[u],A[v]=(a+b)//2,(c+d)//2B[u],B[v]=(c+d)//2,(c+d)//2cost=calculate_cost(A[0],B[0])ans=[]while op_cnt<50:v=-1best_cost=costfor i in range(N):new_cost=calculate_cost((A[0]+A[i])//2,(B[0]+B[i])//2)if(new_cost<cost):v=ibest_cost=costif(v==-1):breakelse:op_cnt+=1op(0,v)ans.append([0,v])cost=calculate_cost(A[0],B[0])print(len(ans))for (u,v) in ans:print(u+1,v+1)