Submission #66126970


Source Code Expand

Copy
#
#1-based
N=int(input())
A=list(map(int,input().split()))
pre=[0]*(N+1)
nxt=[N+1]*(N+1)
st=[]
for i in range(1, N+1):
while st and A[st[-1]-1]<=A[i-1]:
st.pop()
pre[i]=st[-1] if st else 0
st.append(i)
st=[]
for i in range(N, 0, -1):
while st and A[st[-1]-1]<A[i-1]:
st.pop()
nxt[i]=st[-1] if st else N+1
st.append(i)
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#バグるのうざすぎ
#1-basedでやる

N=int(input())
A=list(map(int,input().split()))

pre=[0]*(N+1)
nxt=[N+1]*(N+1)
st=[]
for i in range(1, N+1):
    while st and A[st[-1]-1]<=A[i-1]:
        st.pop()
    pre[i]=st[-1] if st else 0
    st.append(i)

st=[]
for i in range(N, 0, -1):
    while st and A[st[-1]-1]<A[i-1]:
        st.pop()
    nxt[i]=st[-1] if st else N+1
    st.append(i)
    
#P,Qを累積和でとって一気にやりたい
P=[0]*(N+2)#kにつく係数
Q=[0]*(N+2)#定数

#k(a*pi[k])+a*qi[k]
for i in range(1,N+1):
    L=i-pre[i]
    R=nxt[i]-i

    d1,d2=min(L,R),max(L,R)
    T=L+R-1
    a=A[i-1]

    #1<=k<=d1
    P[1]+=a
    P[d1+1]-=a

    #d1<k<=d2
    Q[d1+1]+=a*d1
    Q[d2+1]-=a*d1

    #d2<k<=T
    P[d2+1]+=-a
    P[T+1]-=-a
    Q[d2+1]+=a*(L+R)
    Q[T+1]-=a*(L+R)

for k in range(1,N+1):
    P[k]+=P[k-1]
    Q[k]+=Q[k-1]

#1-based->0-based
ans=[0]*N
for k in range(1,N+1):
    ans[k-1]=P[k]*k+Q[k]
print(*ans)

Submission Info

Submission Time
Task F - Sums of Sliding Window Maximum
User kotafuku
Language Python (PyPy 3.10-v7.3.12)
Score 550
Code Size 1009 Byte
Status AC
Exec Time 145 ms
Memory 137508 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 550 / 550
Status
AC × 3
AC × 37
Set Name Test Cases
Sample 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt
All 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 01-small-01.txt, 01-small-02.txt, 01-small-03.txt, 01-small-04.txt, 01-small-05.txt, 01-small-06.txt, 01-small-07.txt, 01-small-08.txt, 01-small-09.txt, 01-small-10.txt, 01-small-11.txt, 01-small-12.txt, 01-small-13.txt, 01-small-14.txt, 01-small-15.txt, 01-small-16.txt, 01-small-17.txt, 01-small-18.txt, 01-small-19.txt, 01-small-20.txt, 01-small-21.txt, 01-small-22.txt, 01-small-23.txt, 01-small-24.txt, 02-large-01.txt, 02-large-02.txt, 02-large-03.txt, 02-large-04.txt, 02-large-05.txt, 02-large-06.txt, 02-large-07.txt, 02-large-08.txt, 02-large-09.txt, 02-large-10.txt
Case Name Status Exec Time Memory
00-sample-01.txt AC 57 ms 76448 KiB
00-sample-02.txt AC 59 ms 76772 KiB
00-sample-03.txt AC 57 ms 76496 KiB
01-small-01.txt AC 57 ms 76752 KiB
01-small-02.txt AC 57 ms 76264 KiB
01-small-03.txt AC 56 ms 76272 KiB
01-small-04.txt AC 59 ms 76512 KiB
01-small-05.txt AC 57 ms 76524 KiB
01-small-06.txt AC 58 ms 76632 KiB
01-small-07.txt AC 58 ms 76256 KiB
01-small-08.txt AC 57 ms 76548 KiB
01-small-09.txt AC 58 ms 76220 KiB
01-small-10.txt AC 59 ms 76292 KiB
01-small-11.txt AC 59 ms 76324 KiB
01-small-12.txt AC 58 ms 76648 KiB
01-small-13.txt AC 56 ms 76280 KiB
01-small-14.txt AC 57 ms 76368 KiB
01-small-15.txt AC 72 ms 82620 KiB
01-small-16.txt AC 83 ms 82904 KiB
01-small-17.txt AC 73 ms 82628 KiB
01-small-18.txt AC 84 ms 82660 KiB
01-small-19.txt AC 83 ms 82956 KiB
01-small-20.txt AC 79 ms 82764 KiB
01-small-21.txt AC 82 ms 82632 KiB
01-small-22.txt AC 81 ms 82820 KiB
01-small-23.txt AC 77 ms 83052 KiB
01-small-24.txt AC 83 ms 82964 KiB
02-large-01.txt AC 132 ms 134732 KiB
02-large-02.txt AC 141 ms 120220 KiB
02-large-03.txt AC 115 ms 137508 KiB
02-large-04.txt AC 145 ms 116312 KiB
02-large-05.txt AC 141 ms 117212 KiB
02-large-06.txt AC 143 ms 117692 KiB
02-large-07.txt AC 142 ms 120168 KiB
02-large-08.txt AC 144 ms 117200 KiB
02-large-09.txt AC 144 ms 124152 KiB
02-large-10.txt AC 144 ms 117508 KiB


2025-06-30 (Mon)
12:02:49 +09:00