Advertisement
Insyder01

Untitled

Apr 15th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define L(i, m, n) for(int i(m);i < n;i++)
  3. #define pb push_back
  4. #define D(X) cout<<" "<<#X": "<<X<<endl;
  5. #define in(x) cin >> x
  6. #define SZ(X) int(X.size())
  7. #define clr(A, V) L(i, 0, 111) A[i]=V
  8. #define ff first
  9. #define ss second
  10. #define RF(X) freopen(X, "r", stdin)
  11. #define WF(X) freopen(X, "w", stdout)
  12. using namespace std;
  13. typedef long long ll;
  14. typedef pair<ll,ll> pll;
  15. typedef vector<int> vi;
  16. typedef vector<vi> vii;
  17. typedef pair<int,int> pii;
  18. typedef vector<pii> vpii;
  19. typedef pair<int, string> pis;
  20. typedef vector<string> vs;
  21. typedef pair<pair<int, int>, pair<int, int > > piiii;
  22.  
  23. int table[109][10009], price[109], favour[109];
  24. void init(){
  25. memset(table, 0, sizeof(table));
  26. memset(price, 0, sizeof(price));
  27. memset(favour, 0, sizeof(favour));
  28. }
  29. int main(){
  30. // WF("out.txt");
  31. int m, n;
  32. while(scanf("%d%d", &m, &n)==2){
  33. init();
  34. L(i,1,n+1)in(price[i]), in(favour[i]);
  35. for(int i=0;i<=n;i++) table[i][0]=0; for(int j=0;j<=m;j++)if(j>=price[0])table[0][j]=favour[0];/**Base**/
  36. for(int i = 1;i<=n;i++){
  37. for(int j = 1;j<=m;j++){
  38. table[i][j]=max(table[i-1][j], j>= price[i]? favour[i]+table[i-1][j-price[i]]:table[i-1][j]);
  39. }
  40. }
  41. printf("%d\n", table[n][m]);
  42. }
  43.  
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement