Cod sursa(job #1542570)

Utilizator nicula_iulianNicula Iulian nicula_iulian Data 5 decembrie 2015 14:50:38
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include<fstream>
#include<values.h>
using namespace std;

int main()
{int g,w,calitate[10001],valoare[10001],s=0,cost[5001],i,j;
ifstream f("energii.in");
ofstream r("energii.out");
f>>g>>w;
for(i=1;i<=g;i++)
{f>>calitate[i]>>valoare[i];s=s+calitate[i];}
if(s<w) r<<-1;
else
{for(i=1;i<=w;i++)
cost[i]=2000000000;
cost[0]=0;
for(i=1;i<=g;i++)
{
    for(j=w+calitate[i]-1;j>=calitate[i];j--)
        if(cost[j-calitate[i]]!=-1) {if(j>=w)if(cost[j-calitate[i]]+valoare[i]<cost[w]) cost[w]=cost[j-calitate[i]]+valoare[i];
                                                else;
                                       else if(cost[j-calitate[i]]+valoare[i]<cost[j]) cost[j]=cost[j-calitate[i]]+valoare[i];}
}
j=w;
while(cost[j]==0)
    j++;
r<<cost[j];
}
f.close();
r.close();
    return 0;
}