結果
問題 | No.1300 Sum of Inversions |
ユーザー |
![]() |
提出日時 | 2024-09-19 19:58:05 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,522 bytes |
コンパイル時間 | 743 ms |
コンパイル使用メモリ | 82,380 KB |
実行使用メモリ | 175,908 KB |
最終ジャッジ日時 | 2024-09-19 19:59:06 |
合計ジャッジ時間 | 58,654 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 TLE * 9 |
ソースコード
n=int(input())a=list(map(int,input().split()))z=sorted(set(a+[-1,10**10]))d={v:i for i,v in enumerate(z)}M=998244353B=int(len(z)**0.5)+1st1=[0]*B*Bst2=[0]*Blc=[0]*nfor i in range(B*B):st1[i]=0st2[i//B]=0for i in range(n):v=a[i]g=0l=d[v]+1r=n+2yl=l//Byr=r//Bif yl==yr:g+=sum(st1[l:r+1])else:g+=sum(st1[l:yl*B+B])g+=sum(st2[yl+1:yr])g+=sum(st1[yr*B:r+1])lc[i]=gst1[d[v]]+=1st2[d[v]//B]+=1rc=[0]*nfor i in range(B*B):st1[i]=0st2[i//B]=0for i in reversed(range(n)):v=a[i]g=0l=0r=d[v]-1yl=l//Byr=r//Bif yl==yr:g+=sum(st1[l:r+1])else:g+=sum(st1[l:yl*B+B])g+=sum(st2[yl+1:yr])g+=sum(st1[yr*B:r+1])rc[i]=gst1[d[v]]+=1st2[d[v]//B]+=1lc2=[0]*nfor i in range(B*B):st1[i]=0st2[i//B]=0for i in range(n):v=a[i]g=0l=d[v]+1r=n+2yl=l//Byr=r//Bif yl==yr:g+=sum(st1[l:r+1])else:g+=sum(st1[l:yl*B+B])g+=sum(st2[yl+1:yr])g+=sum(st1[yr*B:r+1])lc2[i]=gst1[d[v]]+=lc[i]st2[d[v]//B]+=lc[i]rc2=[0]*nfor i in range(B*B):st1[i]=0st2[i//B]=0for i in reversed(range(n)):v=a[i]g=0l=0r=d[v]-1yl=l//Byr=r//Bif yl==yr:g+=sum(st1[l:r+1])else:g+=sum(st1[l:yl*B+B])g+=sum(st2[yl+1:yr])g+=sum(st1[yr*B:r+1])rc2[i]=gst1[d[v]]+=rc[i]st2[d[v]//B]+=rc[i]ans=0ans+=sum(a[i]*rc2[i] for i in range(n))%Mans+=sum(a[i]*lc[i]*rc[i] for i in range(n))%Mans+=sum(a[i]*lc2[i] for i in range(n))%Mprint(ans%M)