Cod sursa(job #1635805)

Utilizator arhivamanArhiva Man arhivaman Data 6 martie 2016 20:14:30
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#define nMax 5005
#define pi pair<int, int>
#define gMax 10005
#define INF 1 << 30
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
pi V[nMax];
int n, G, dp[gMax], Sol, w, p;
void read()
{
    fin>>n>>G;
    for(int i=1;i<=n;i++)
        fin>>V[i].first>>V[i].second;
}
void solve()
{
    for(int i=1;i<=n;i++)
    {
        w=V[i].first;
        p=V[i].second;
        for(int j=G;j>=w;j--)
            dp[j]=max(dp[j], dp[j-w]+p);
    }
    for(int i=1;i<=G;i++)
        Sol=max(Sol, dp[i]);
    fout<<Sol;
}
int main()
{
    read();
    solve();
    return 0;
}