ログインしてください。
提出 #15126807
ソースコード 拡げる
#!/usr/bin/env python3
# from collections import defaultdict
# from heapq import heappush, heappop
# import numpy as np
import sys
sys.setrecursionlimit(10**6)
input = sys.stdin.buffer.readline
INF = 10 ** 9 + 1 # sys.maxsize # float("inf")
MOD = 10 ** 9 + 7
debug_indent = 0
def debug(*x):
global debug_indent
x = list(x)
indent = 0
if x[0].startswith("enter") or x[0][0] == ">":
indent = 1
if x[0].startswith("leave") or x[0][0] == "<":
debug_indent -= 1
x[0] = " " * debug_indent + x[0]
print(*x, file=sys.stderr)
debug_indent += indent
def solve(N, K, XS):
import bisect
from itertools import accumulate
acc = [0] + list(accumulate(XS))
ret = 0
for i in range(N):
lb = acc[i] + K
j = bisect.bisect_left(acc, lb)
ret += N + 1 - j
return ret
def main():
# parse input
N, K = map(int, input().split())
XS = list(map(int, input().split()))
print(solve(N, K, XS))
# tests
T1 = """
4 10
6 1 2 7
"""
def test_T1():
"""
>>> as_input(T1)
>>> main()
2
"""
T2 = """
3 5
3 3 3
"""
def test_T2():
"""
>>> as_input(T2)
>>> main()
3
"""
T3 = """
10 53462
103 35322 232 342 21099 90000 18843 9010 35221 19352
"""
def test_T3():
"""
>>> as_input(T3)
>>> main()
36
"""
# add tests above
def _test():
import doctest
doctest.testmod()
def as_input(s):
"use in test, use given string as input file"
import io
global read, input
f = io.StringIO(s.strip())
def input():
return bytes(f.readline(), "ascii")
def read():
return bytes(f.read(), "ascii")
USE_NUMBA = False
if (USE_NUMBA and sys.argv[-1] == 'ONLINE_JUDGE') or sys.argv[-1] == '-c':
print("compiling")
from numba.pycc import CC
cc = CC('my_module')
cc.export('solve', solve.__doc__.strip().split()[0])(solve)
cc.compile()
exit()
else:
input = sys.stdin.buffer.readline
read = sys.stdin.buffer.read
if (USE_NUMBA and sys.argv[-1] != '-p') or sys.argv[-1] == "--numba":
# -p: pure python mode
# if not -p, import compiled module
from my_module import solve # pylint: disable=all
elif sys.argv[-1] == "-t":
print("testing")
_test()
sys.exit()
elif sys.argv[-1] != '-p' and len(sys.argv) == 2:
# input given as file
input_as_file = open(sys.argv[1])
input = input_as_file.buffer.readline
read = input_as_file.buffer.read
main()
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Enough Array |
| ユーザ | nishiohirokazu |
| 言語 | PyPy3 (7.3.0) |
| 得点 | 400 |
| コード長 | 2683 Byte |
| 結果 | AC |
| 実行時間 | 111 ms |
| メモリ | 90708 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, s1.txt, s2.txt, s3.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01.txt | AC | 66 ms | 62612 KiB |
| 02.txt | AC | 57 ms | 62372 KiB |
| 03.txt | AC | 55 ms | 62652 KiB |
| 04.txt | AC | 58 ms | 62428 KiB |
| 05.txt | AC | 56 ms | 62396 KiB |
| 06.txt | AC | 62 ms | 62516 KiB |
| 07.txt | AC | 58 ms | 62700 KiB |
| 08.txt | AC | 57 ms | 62684 KiB |
| 09.txt | AC | 58 ms | 62428 KiB |
| 10.txt | AC | 59 ms | 62516 KiB |
| 11.txt | AC | 51 ms | 62488 KiB |
| 12.txt | AC | 59 ms | 62616 KiB |
| 13.txt | AC | 55 ms | 62628 KiB |
| 14.txt | AC | 98 ms | 89768 KiB |
| 15.txt | AC | 106 ms | 89836 KiB |
| 16.txt | AC | 110 ms | 90304 KiB |
| 17.txt | AC | 98 ms | 90064 KiB |
| 18.txt | AC | 94 ms | 89976 KiB |
| 19.txt | AC | 102 ms | 89976 KiB |
| 20.txt | AC | 110 ms | 90356 KiB |
| 21.txt | AC | 110 ms | 90180 KiB |
| 22.txt | AC | 108 ms | 90288 KiB |
| 23.txt | AC | 98 ms | 90540 KiB |
| 24.txt | AC | 96 ms | 90564 KiB |
| 25.txt | AC | 111 ms | 90708 KiB |
| 26.txt | AC | 108 ms | 90360 KiB |
| s1.txt | AC | 58 ms | 62536 KiB |
| s2.txt | AC | 55 ms | 62636 KiB |
| s3.txt | AC | 59 ms | 62520 KiB |