結果
問題 |
No.1233 割り切れない気持ち
|
ユーザー |
|
提出日時 | 2021-03-04 11:16:23 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 179 ms / 3,153 ms |
コード長 | 547 bytes |
コンパイル時間 | 371 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 121,520 KB |
最終ジャッジ日時 | 2024-10-04 15:44:14 |
合計ジャッジ時間 | 6,283 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 39 |
ソースコード
def main1(n,a): ret=n*sum(a) m=max(a) ary=[0]*(m+1) for x in a:ary[x]+=1 sary=[0] for x in ary:sary.append(sary[-1]+x) memo={} for x in a: if x in memo: ret+=memo[x] continue tmp=0 i=1 while i*x<=m: # xで割った商がiになる数字の個数 # [i*x,(i+1)*x) s=i*x e=min((i+1)*x,m+1) t=sary[e]-sary[s] tmp-=i*x*t i+=1 memo[x]=tmp ret+=tmp return ret if __name__=='__main__': n=int(input()) a=list(map(int,input().split())) print(main1(n,a))