-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuva-10819.cpp
More file actions
37 lines (32 loc) · 787 Bytes
/
uva-10819.cpp
File metadata and controls
37 lines (32 loc) · 787 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <bits/stdc++.h>
#define endl '\n'
#define fastIO ios_base::sync_with_stdio(0);
using namespace std;
int p,f;
int dp[110][14000];
struct data{
int price;
int favour;
}dat[101];
int solve(int m,int idx){
if (m > p && p < 1800) return -10000;
if (m > p + 200) return -10000;
if (idx == f) {
if (m > p && m <= 2000) return -10000;
return 0;
}
if (dp[idx][m] != -1) return dp[idx][m];
int l = solve(m + dat[idx].price,idx+1) + dat[idx].favour;
int r = solve(m,idx+1);
return dp[idx][m] = max(l,r);
}
int main(){
fastIO;
while (cin >> p >> f){
memset(dp,-1,sizeof(dp));
for (int i = 0;i<f;i++){
cin >> dat[i].price >> dat[i].favour;
}
cout << solve(0,0) << endl;
}
}