1 solutions
-
0
#include<bits/stdc++.h> using namespace std; #define int long long int t,m,sz[101],w[101],zs[101][1001]; signed main(){ cin>>t>>m; for(int i=1;i<=m;i++) cin>>sz[i]>>w[i]; for(int i=1;i<=m;i++) { if(sz[i]>t)continue; for(int j=t;j>=0;j--){ zs[i][j]=zs[i-1][j]; } for(int j=t;j>=sz[i];j--){ zs[i][j]=max(zs[i][j],zs[i][j-sz[i]]+w[i]); //cout<<zs[i-1][j]<<" "<<i<<" "<<j<<" "<<j-sz[i]<<" "<<w[i]<<" "<< zs[i][j]<<endl; } } int ma=0; for(int i=1;i<=t;i++){ ma=max(ma,zs[m][i]); } cout<<ma; }
- 1
Information
- ID
- 102
- Time
- 1000ms
- Memory
- 512MiB
- Difficulty
- 10
- Tags
- # Submissions
- 5
- Accepted
- 1
- Uploaded By