1490G - Old Floppy Drive - CodeForces Solution


binary search data structures math *1900

Please click on ads to support us..

Python Code:

import sys

input = sys.stdin.readline
inf = float('inf')


def getInt():
    return int(input())


def getStr():
    return input().strip()


def getList(split=True):
    s = getStr()
    if split:
        s = s.split()
    return list(map(int, s))


t = getInt()


def solve():
    n, m = getList()
    a = getList()
    q = getList()
    from itertools import accumulate
    p = list(accumulate(a))
    gain = list(accumulate(p, max))
    from bisect import bisect_left, bisect
    for i in q:
        if i <= gain[-1]:
            it = bisect_left(gain, i)
            print(it, end=" ")
        elif p[-1] <= 0:
            print(-1, end=" ")
        else:
                        k = (i-gain[-1] + p[-1]-1) // (p[-1])
            i -= p[-1]*k
            res = n * k
            if i:
                res += bisect_left(gain, i)+1
            print(res-1, end=" ")
    print()


for _ in range(t):
    solve()


Comments

Submit
0 Comments
More Questions

1574A - Regular Bracket Sequences
1574B - Combinatorics Homework
1567A - Domino Disaster
1593A - Elections
1607A - Linear Keyboard
EQUALCOIN Equal Coins
XOREQN Xor Equation
MAKEPAL Weird Palindrome Making
HILLSEQ Hill Sequence
MAXBRIDGE Maximise the bridges
WLDRPL Wildcard Replacement
1221. Split a String in Balanced Strings
1002. Find Common Characters
1602A - Two Subsequences
1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction
1604B - XOR Specia-LIS-t
1606B - Update Files
1598B - Groups
1602B - Divine Array