Cod sursa(job #881691)

Utilizator GManiakGhenea Catalin GManiak Data 18 februarie 2013 14:33:19
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream h("rucsac.out");
struct obj{
    int g,p;
}obj[5001];
int n,k,profit[10001];
void rucsac()
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=k-obj[i].g;j>0;j--)
        {
            if(profit[j]!=0)
                if(profit[j]+obj[i].p>profit[j+obj[i].g])
                    profit[j+obj[i].g]=profit[j]+obj[i].p;
        }
        if(obj[i].p>profit[obj[i].g])
            profit[obj[i].g]=obj[i].p;
    }

}

int main()
{
    int max,i;
    f>>n>>k;
    for(i=0;i<n;i++)
        f>>obj[i].g>>obj[i].p;
    rucsac();
    for(i=1,max=0;i<=k;i++)
        if(profit[i]>max)
            max=profit[i];
    h<<max;
    return 0;
}