1 solutions
-
0
C++ :
#include <iostream> #include <limits.h> #include <algorithm> using namespace std; #define F(i,j,k) for (int i=j;i<=k;i++) int n,m; int w[50],v[50]; int f[30000]; int main() { cin>>n>>m; F(i,1,m) { cin>>v[i]>>w[i]; } F(i,1,m) { for (int j=n;j>=v[i];j--) { f[j]=max(f[j-v[i]]+v[i]*w[i],f[j]); } } cout<<f[n]; return 0; }Pascal :
var n,m,w,c,i,j:longint; f:array[0..100000]of longint; begin readln(n,m); for i:=1 to m do begin readln(w,c); c:=c*w; for j:= n downto w do if f[j-w]+c>f[j] then f[j]:=f[j-w]+c; end; for i:=2 to n do if f[i]>f[1] then f[1]:=f[i]; writeln(f[1]); end.
- 1
Information
- ID
- 18973
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By