Submission #5300115
Source Code Expand
import sys
from collections import Counter
sys.setrecursionlimit(10**6)
N, X = map(int, input().split())
A = list(map(int, input().split()))
def count(B):
L = len(B)
if L == 1:
return 0
B1 = (B[:L//2])[::-1]
B2 = B[L//2:]
res = 0
M1 = [0]*(L//2)
M2 = [0]*(-(-L//2))
C1 = [0]*(L//2)
C2 = [0]*(-(-L//2))
maxi = -1
cnt = 0
for i, b in enumerate(B1):
if b == maxi:
cnt += 1
elif b > maxi:
maxi = b
cnt = 1
M1[i] = maxi
C1[i] = cnt
maxi = -1
cnt = 0
for i, b in enumerate(B2):
if b == maxi:
cnt += 1
elif b > maxi:
maxi = b
cnt = 1
M2[i] = maxi
C2[i] = cnt
e2 = -1
table = Counter()
for b, m, c in zip(B1, M1, C1):
while e2 < -(-L//2) - 1 and B2[e2+1] <= b:
e2 += 1
table[B2[e2]] += 1
if 0 <= X - b - m <= 10**5:
res += table[X - b - m]*c
e1 = -1
table = Counter()
for b, m, c in zip(B2, M2, C2):
while e1 < L//2 - 1 and B1[e1+1] <= b:
e1 += 1
table[B1[e1]] += 1
if 0 <= X - b - m <= 10**5:
res += table[X - b - m]*c
return res
J = []
def div(C):
L = len(C)
if L == 1:
return
J.append(C)
div(C[:L//2])
div(C[L//2:])
div(A)
ans = 0
if not X % 3:
ans += A.count(X//3)
for j in J:
ans += count(j)
print(ans)
Submission Info
| Submission Time | |
|---|---|
| Task | H - Highest and Ends |
| User | Tallfall |
| Language | PyPy3 (2.4.0) |
| Score | 800 |
| Code Size | 1538 Byte |
| Status | AC |
| Exec Time | 1088 ms |
| Memory | 121844 KiB |
Judge Result
| Set Name | Sample | Small | All | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | 500 / 500 | ||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00, 01, 02 |
| Small | 00, 01, 02, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 |
| All | 00, 01, 02, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00 | AC | 164 ms | 38256 KiB |
| 01 | AC | 165 ms | 38256 KiB |
| 02 | AC | 166 ms | 38256 KiB |
| 10 | AC | 340 ms | 53340 KiB |
| 11 | AC | 335 ms | 52316 KiB |
| 12 | AC | 266 ms | 47724 KiB |
| 13 | AC | 305 ms | 49884 KiB |
| 14 | AC | 371 ms | 53468 KiB |
| 15 | AC | 299 ms | 50868 KiB |
| 16 | AC | 366 ms | 54364 KiB |
| 17 | AC | 323 ms | 51804 KiB |
| 18 | AC | 298 ms | 48220 KiB |
| 19 | AC | 261 ms | 44400 KiB |
| 20 | AC | 349 ms | 54232 KiB |
| 21 | AC | 372 ms | 55900 KiB |
| 22 | AC | 347 ms | 52588 KiB |
| 23 | AC | 337 ms | 52188 KiB |
| 24 | AC | 388 ms | 56284 KiB |
| 25 | AC | 312 ms | 48876 KiB |
| 26 | AC | 362 ms | 53212 KiB |
| 27 | AC | 314 ms | 50280 KiB |
| 28 | AC | 276 ms | 47468 KiB |
| 29 | AC | 293 ms | 48732 KiB |
| 30 | AC | 1010 ms | 120944 KiB |
| 31 | AC | 949 ms | 113496 KiB |
| 32 | AC | 761 ms | 107372 KiB |
| 33 | AC | 779 ms | 103148 KiB |
| 34 | AC | 1005 ms | 116812 KiB |
| 35 | AC | 883 ms | 108100 KiB |
| 36 | AC | 1080 ms | 121844 KiB |
| 37 | AC | 952 ms | 114976 KiB |
| 38 | AC | 787 ms | 87484 KiB |
| 39 | AC | 776 ms | 83328 KiB |
| 40 | AC | 903 ms | 93648 KiB |
| 41 | AC | 971 ms | 97024 KiB |
| 42 | AC | 986 ms | 102268 KiB |
| 43 | AC | 1077 ms | 104532 KiB |
| 44 | AC | 1015 ms | 104060 KiB |
| 45 | AC | 1042 ms | 103256 KiB |
| 46 | AC | 1088 ms | 105892 KiB |
| 47 | AC | 940 ms | 108012 KiB |
| 48 | AC | 968 ms | 113904 KiB |
| 49 | AC | 965 ms | 104436 KiB |
| 50 | AC | 961 ms | 98784 KiB |
| 51 | AC | 1024 ms | 99064 KiB |
| 52 | AC | 1088 ms | 107176 KiB |
| 53 | AC | 1049 ms | 105536 KiB |
| 54 | AC | 884 ms | 99732 KiB |
| 55 | AC | 950 ms | 101392 KiB |
| 56 | AC | 952 ms | 111148 KiB |
| 57 | AC | 992 ms | 114184 KiB |
| 58 | AC | 1070 ms | 109868 KiB |
| 59 | AC | 947 ms | 118512 KiB |