Pagini recente » Cod sursa (job #1704736) | Cod sursa (job #1979239) | Istoria paginii utilizator/nicola_bulzan | Cod sursa (job #423072) | Cod sursa (job #1817856)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("energii.in");
ofstream g ("energii.out");
struct energii
{
int eg,cg;
}ge[1001];
int G,W,cmin;
int suma()
{
int s=0;
for(int i=1;i<=G;i++)
s=s+ge[i].eg;
return s;
}
void ordonare()///descrescator dupa cost
{
energii aux;
for(int i=1;i<G;i++)
for(int j=i+1;j<=G;j++)
if(ge[i].cg < ge[j].cg)
{
aux=ge[i];
ge[i]=ge[j];
ge[j]=aux;
}
}
void greedy()
{
int ok=0;
for(int i=1;i<=G ;i++)
{
if(ge[i].eg==W)
{
g<<ge[i].cg;
W=W-ge[i].eg;
ok=1;
}
if(ge[i].eg < W)
{
cmin=cmin+ge[i].cg;
W=W-ge[i].eg;
}
}
if(W>0)
g<<-1;
if(ok==0)
g<<cmin;
}
int main()
{
f>>G>>W;
for(int i=1;i<=G;i++)
f>>ge[i].eg>>ge[i].cg;
ordonare();
greedy();
return 0;
}