Pagini recente » Cod sursa (job #2166449) | Cod sursa (job #129558) | Cod sursa (job #1684502) | Cod sursa (job #1258303) | Cod sursa (job #262449)
Cod sursa(job #262449)
#include <stdio.h>
#include <stdlib.h>
struct generator
{
int energie,cost;
};
generator v[1005];
int g,w,economie_distrusa;
void read()
{
int i;
scanf("%d%d",&g,&w);
for (i=1; i<=g; i++)
scanf("%d%d",&v[i].energie,&v[i].cost);
}
int compare(const void *p,const void *q)
{
generator x=*(generator*)p,y=*(generator*)q;
if (x.cost<y.cost)
return -1;
if (x.cost>y.cost)
return 1;
if (x.energie<y.energie)
return -1;
if (x.energie>y.energie)
return 1;
return 0;
}
void sort()
{
qsort(v+1,g,sizeof(v[0]),compare);
}
void verif()
{
int i,s=0;
for (i=1; i<=g; i++)
s+=v[i].energie;
if (s<w)
{
printf("-1");
economie_distrusa=1;
}
}
void solve()
{
int costmin=0,energie=0,r,i;
for (i=1; i<=g; i++)
if (energie<w)
{
energie+=v[i].energie;
costmin+=v[i].cost;
}
printf("%d",costmin);
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
read();
sort();
verif();
//afisare();
if (economie_distrusa==0)
solve();
return 0;
}