結果

問題 No.1300 Sum of Inversions
ユーザー sasa8uyauya
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

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=998244353
B=int(len(z)**0.5)+1
st1=[0]*B*B
st2=[0]*B
lc=[0]*n
for i in range(B*B):
st1[i]=0
st2[i//B]=0
for i in range(n):
v=a[i]
g=0
l=d[v]+1
r=n+2
yl=l//B
yr=r//B
if 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]=g
st1[d[v]]+=1
st2[d[v]//B]+=1
rc=[0]*n
for i in range(B*B):
st1[i]=0
st2[i//B]=0
for i in reversed(range(n)):
v=a[i]
g=0
l=0
r=d[v]-1
yl=l//B
yr=r//B
if 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]=g
st1[d[v]]+=1
st2[d[v]//B]+=1
lc2=[0]*n
for i in range(B*B):
st1[i]=0
st2[i//B]=0
for i in range(n):
v=a[i]
g=0
l=d[v]+1
r=n+2
yl=l//B
yr=r//B
if 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]=g
st1[d[v]]+=lc[i]
st2[d[v]//B]+=lc[i]
rc2=[0]*n
for i in range(B*B):
st1[i]=0
st2[i//B]=0
for i in reversed(range(n)):
v=a[i]
g=0
l=0
r=d[v]-1
yl=l//B
yr=r//B
if 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]=g
st1[d[v]]+=rc[i]
st2[d[v]//B]+=rc[i]
ans=0
ans+=sum(a[i]*rc2[i] for i in range(n))%M
ans+=sum(a[i]*lc[i]*rc[i] for i in range(n))%M
ans+=sum(a[i]*lc2[i] for i in range(n))%M
print(ans%M)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0