提出 #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
結果
AC × 3
AC × 29
セット名 テストケース
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