Cod sursa(job #1095147)

Utilizator pincucatalinPincu Catalin pincucatalin Data 30 ianuarie 2014 14:54:56
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int n,k,p[5001],q[5001],profit[10001];
int main()
{

    f>>n>>k;
    for (int i=1;i<=n;i++)
    {
        f>>q[i]>>p[i];
    }
    for (int j=1;j<=k;j++)
        profit[j]=-1;
    profit[0]=0;
    for (int i=1;i<=n;i++)
    {
        for (int j=k-q[i];j>=0;j--)
        {
            if (profit[j]!=-1 && profit[j]+p[i]>profit[j+q[i]])
                profit[j+q[i]]=profit[j]+p[i];
        }
    }
    int max=-1;
    for (int j=1;j<=k;j++)
    {
        if (profit[j]>max)
            max=profit[j];
    }
    g<<max;

    return 0;
}