8645 2024. 01. 24 19:10:31 NagyLeo MI bróker (50 pont) pypy3 Elfogadva 50/50 328ms 102304 KiB
from sys import stdin, stdout

input = stdin.readline


# O(N*Q)
# N, Q = 0, 0
def main(Q, N, Prices):
    # N,Q = list(map(int, input().split()))
    # N,Q = [int(x) for x in input().split()]
    # N = NQ[0]
    # Q = NQ[1]
    # Prices = list(map(int, stdin.readline().split()))
    # balance = [0]*Q

    for i in range(Q):
        isHolding = False
        curBalance = 0
        lo, hi = list(map(int, stdin.readline().split()))
        for f in Prices:
            if not isHolding:
                if lo >= f:
                    curBalance -= f
                    isHolding = True
            elif hi <= f:
                curBalance += f
                isHolding = False
        # balance.append(curBalance)
        # balance[i]=curBalance

        # for i in balance:
        stdout.write(str(curBalance) + '\n')


# main()

# 5 10 10 10 5 5 5 5
# Q:
# 6 9
# 7 8
# 6 8
def ketszam():
    N, Q = list(map(int, input().split()))
    Prices = list(map(int, stdin.readline().split()))
    first = Prices[0]
    second = 0

    if Q <= 50:
        main(Q, N, Prices)
        return

    for i in Prices:  # range(1,len(Prices)))
        if i != first:
            second = i

    if second < first:
        second, first = first, second

    fourth = False
    fourthBalance = 0
    for i in range(Q):
        lo, hi = list(map(int, stdin.readline().split()))
        if lo < first:
            stdout.write('0\n')
        elif hi > second:
            if lo >= second and Prices[0] == second:
                stdout.write(str(-second) + '\n')
            else:
                stdout.write(str(-first) + '\n')
        else:
            if fourth == False:
                fourth = True
                isHolding = False
                curBalance = 0
                for f in Prices:
                    if not isHolding:
                        if lo >= f:
                            curBalance -= f
                            isHolding = True
                    elif hi <= f:
                        curBalance += f
                        isHolding = False

                stdout.write(str(curBalance) + '\n')
                fourthBalance = curBalance
            else:
                stdout.write(str(fourthBalance) + '\n')


#ketszam()

def solv():
    N, Q = list(map(int, input().split()))
    Prices = list(map(int, stdin.readline().split()))
    Valasz = [[0] * 501 for i in range(501)]

    # haszon
    for lo in range(1, 500):
        delta = [0] * 501
        utolsoElad = 501
        for ar in Prices:
            if ar <= lo:
                utolsoElad = lo
            elif utolsoElad < ar:
                delta[utolsoElad] += ar
                delta[ar] -= ar
                utolsoElad = ar
        # if lo==41:
        #    print(Prices)
        #    print(delta)
        #    print(delta[41],delta[80],delta[100],delta[120],delta[125])

        szumma = delta[lo]
        for eladas in range(lo + 1, 501):
            Valasz[lo][eladas] = szumma
            szumma += delta[eladas]

    # vetel
    for hi in range(500, 1, -1):
        delta = [0] * 501
        utolsoVesz = hi
        for ar in Prices:
            if ar >= hi:
                utolsoVesz = hi
            elif utolsoVesz > ar:
                delta[utolsoVesz] += ar
                delta[ar] -= ar
                utolsoVesz = ar
        # if hi==41:
        #    print(Prices)
        #    print(delta)
        #    print(delta[30],delta[40],delta[41],delta[120],delta[125])

        szumma = delta[hi]
        for eladas in range(hi - 1, 0, -1):
            Valasz[eladas][hi] -= szumma
            szumma += delta[eladas]

    for _ in range(Q):
        lo, hi = list(map(int, stdin.readline().split()))
        stdout.write(str(Valasz[lo][hi]) + '\n')


solv()
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 68ms 90648 KiB
2 Elfogadva 0/0 272ms 96020 KiB
3 Elfogadva 1/1 75ms 91612 KiB
4 Elfogadva 1/1 70ms 91268 KiB
5 Elfogadva 2/2 96ms 92552 KiB
6 Elfogadva 2/2 212ms 93892 KiB
7 Elfogadva 2/2 209ms 93852 KiB
8 Elfogadva 1/1 245ms 102304 KiB
9 Elfogadva 1/1 259ms 101612 KiB
10 Elfogadva 2/2 305ms 99588 KiB
11 Elfogadva 2/2 293ms 99856 KiB
12 Elfogadva 2/2 314ms 98944 KiB
13 Elfogadva 2/2 319ms 99964 KiB
14 Elfogadva 2/2 308ms 100792 KiB
15 Elfogadva 3/3 312ms 99384 KiB
16 Elfogadva 3/3 316ms 99708 KiB
17 Elfogadva 3/3 310ms 100992 KiB
18 Elfogadva 3/3 316ms 101356 KiB
19 Elfogadva 3/3 314ms 100736 KiB
20 Elfogadva 3/3 314ms 101068 KiB
21 Elfogadva 3/3 314ms 101724 KiB
22 Elfogadva 3/3 321ms 102224 KiB
23 Elfogadva 3/3 316ms 102156 KiB
24 Elfogadva 3/3 328ms 101320 KiB