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 0st.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+1st.append(i)
#バグるのうざすぎ
#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 |
|
|
| 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 |