1 solutions

  • 0
    @ 2025-11-5 18:40:01

    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