結果
問題 | No.2008 Super Worker |
ユーザー |
![]() |
提出日時 | 2022-07-15 21:27:01 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 429 ms / 2,000 ms |
コード長 | 941 bytes |
コンパイル時間 | 216 ms |
コンパイル使用メモリ | 82,364 KB |
実行使用メモリ | 138,340 KB |
最終ジャッジ日時 | 2024-06-27 16:50:47 |
合計ジャッジ時間 | 8,213 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
def compare(x,y):# 比較関数 (x<=y)a1,b1=xa2,b2=yif a1+b1*a2>=a2+b2*a1:return Truereturn Falsedef merge(l, r):new = []ln = 0rn = 0while ln < len(l) and rn < len(r):if compare(l[ln],r[rn]):new.append(l[ln])ln += 1else:new.append(r[rn])rn += 1for i in range(ln, len(l)):new.append(l[i])for i in range(rn, len(r)):new.append(r[i])return newdef MergeSort(l):if len(l) == 0:return []if len(l) == 1:return lelse:a = l[:len(l)//2]b = l[len(l)//2:]return merge(MergeSort(a), MergeSort(b))mod=10**9+7n=int(input())a=list(map(int,input().split()))b=list(map(int,input().split()))ab=[]for i in range(n):ab.append((a[i],b[i]))ab=MergeSort(ab)ans=0x=1for a,b in ab:ans+=a*xans%=modx=b*xx%=modprint(ans)#print(ab)