Pagini recente » Cod sursa (job #608865) | Cod sursa (job #2474634) | Cod sursa (job #1561212) | Cod sursa (job #3277395) | Cod sursa (job #925675)
Cod sursa(job #925675)
#include <iostream>
#include <fstream>
using namespace std;
ifstream ka("energii.in");
ofstream ki("energii.out");
int g,w,k,sol[5001][1001];
bool gasit=false;
struct generator
{
int p,c;
}a[1001];
int main()
{
ka>>g>>w;
for(int i=1;i<=g;i++)
{
ka>>a[++k].p;
ka>>a[k].c;
if(sol[a[k].p][0]==0||sol[a[k].p][0]>a[k].c)
{
sol[a[k].p][0]=a[k].c;
sol[a[k].p][a[k].p]=1;
}
}
for(int i=1;i<=5001;i++)
{
for(int j=1;j<=g;j++)
{
if((i>a[j].p&&sol[i][0]==0&&sol[i-a[j].p][0]!=0&&sol[i-a[j].p][a[j].p]==0)||(i>a[j].p&&sol[i-a[j].p][0]!=0&&sol[i-a[j].p][0]+a[j].c<sol[i][0]&&sol[i-a[j].p][a[j].p]==0))
sol[i][0]=sol[i-a[j].p][0]+a[j].c;
sol[i][a[j].p]=1;
}
if(i>=w&&sol[i][0]!=0)
{
ki<<sol[i][0];
gasit=true;
break;
}
}
if(!gasit)
ki<<"-1";
}