結果
問題 | No.2008 Super Worker |
ユーザー |
![]() |
提出日時 | 2022-07-15 21:40:33 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,474 ms / 2,000 ms |
コード長 | 1,085 bytes |
コンパイル時間 | 270 ms |
コンパイル使用メモリ | 82,532 KB |
実行使用メモリ | 145,736 KB |
最終ジャッジ日時 | 2024-06-27 17:14:57 |
合計ジャッジ時間 | 21,861 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
import bisect import copy import decimal import fractions import heapq import itertools import math import random import sys import time from collections import Counter,deque,defaultdict from functools import lru_cache,reduce from heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_max def _heappush_max(heap,item): heap.append(item) heapq._siftdown_max(heap, 0, len(heap)-1) def _heappushpop_max(heap, item): if heap and item < heap[0]: item, heap[0] = heap[0], item heapq._siftup_max(heap, 0) return item from math import gcd as GCD read=sys.stdin.read readline=sys.stdin.readline readlines=sys.stdin.readlines N=int(readline()) A=list(map(int,readline().split())) B=list(map(int,readline().split())) class idx: def __init__(self,i): self.i=i def __lt__(self,other): i=self.i j=other.i return A[i]+A[j]*B[i]<A[j]+A[i]*B[j] ans=0 x=1 mod=10**9+7 lst=[idx(i) for i in range(N)] lst.sort(reverse=True) for id in lst: i=id.i ans+=A[i]*x x*=B[i] ans%=mod x%=mod print(ans)