1974E - Money Buys Happiness - CodeForces Solution


dp

Please click on ads to support us..

Python Code:

ts=int(input())
while ts>0:
    ts-=1
    m,x=map(int,input().split())
    cost=[0]*m
    happy=[0]*m
    for i in range(m):
        cost[i],happy[i]=map(int,input().split())
    total=sum(happy)
    dp=[1000000000000]*(total+5)
    dp[0],ans=0,0
    for i in range(m):
        for j in range(total,happy[i]-1,-1):
            if dp[j-happy[i]]+cost[i]<=i*x:
                dp[j]=min(dp[j],dp[j-happy[i]]+cost[i])
    for i in range(total,0,-1):
        if dp[i]<1000000000000:
            ans=i
            break
    print(ans)


Comments

Submit
0 Comments
More Questions

1041A - Heist
901A - Hashing Trees
1283A - Minutes Before the New Year
1654D - Potion Brewing Class
1107B - Digital root
25A - IQ test
785A - Anton and Polyhedrons
1542B - Plus and Multiply
306A - Candies
1651C - Fault-tolerant Network
870A - Search for Pretty Integers
1174A - Ehab Fails to Be Thanos
1169A - Circle Metro
780C - Andryusha and Colored Balloons
1153A - Serval and Bus
1487C - Minimum Ties
1136A - Nastya Is Reading a Book
1353B - Two Arrays And Swaps
1490E - Accidental Victory
1335A - Candies and Two Sisters
96B - Lucky Numbers (easy)
1151B - Dima and a Bad XOR
1435B - A New Technique
1633A - Div 7
268A - Games
1062B - Math
1294C - Product of Three Numbers
749A - Bachgold Problem
1486B - Eastern Exhibition
1363A - Odd Selection