Pagini recente » Cod sursa (job #1430648) | Cod sursa (job #2097709) | Cod sursa (job #2691650) | Cod sursa (job #2410625) | Cod sursa (job #876157)
Cod sursa(job #876157)
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int i,j,gn,w,a[1004][4],ct[10004],en[10004],min1,s;
int main()
{
f>>gn>>w;
min1=10002;
for (i=1;i<=gn;i++)
for(j=1;j<=2;j++)
{
f>>a[i][j];
s+=a[i][1];
}
if(s<w)
g<<-1;
for(i=1;i<=gn;i++)
{
for(j=w;j>=1;j--)
if(en[j]!=0)
{
en[j+a[i][1]]=1;
if( ct[ j+a[i][1] ]!=0 )
{
if( ct[ j+a[i][1] ] > ct[j]+a[i][2] )
ct[ j+a[i][1] ] = ct[j]+a[i][2];
}
else
ct[ j+a[i][1] ] = ct[j]+a[i][2];
if(j+a[i][1]>=w)
if(min1>ct[j+a[i][1]] )
min1=ct[j+a[i][1]];
}
if(en[a[i][1]]!=0 )
{
if(ct[a[i][1]] > a[i][2] )
ct[a[i][1]] = a[i][2];
if( a[i][1]>=w )
if(min1>ct[a[i][1]] )
min1=ct[a[i][1]];
}
else
{
en[a[i][1]]=1;
ct[a[i][1]]=a[i][2];
if( a[i][1]>=w)
if(min1>ct[a[i][1]])
min1=ct[a[i][1]];
}
}
g<<min1;
return 0;
}