Pagini recente » Cod sursa (job #192895) | Cod sursa (job #1605385) | Cod sursa (job #2974444) | Cod sursa (job #2621325) | Cod sursa (job #675)
Cod sursa(job #675)
#include <fstream.h>
//using namespace std;
int main()
{
ifstream fi("energii.in");
ofstream fo("energii.out");
int g, w, E[1000], C[1000];
int CP[1000], V[1000];
fi >> g >> w;
int i, j;
for(i=0; i<g; i++)
fi >> E[i] >> C[i];
// idi-sort
int max;
for(i=0; i<g; i++)
{
max = 0;
for(j=0; j<g; j++)
{
if(E[j]>E[max])
{
max=j;
}
}
if(max)
{
E[i] += E[max];
E[max] = E[i]-E[max];
E[i] -= E[max];
C[i] += C[max];
C[max] = C[i]-C[max];
C[i] -= C[max];
}
}
CP[0]=C[0];
V[0]=-1*w+E[0];
int f;
for(i=1; i<g; i++)
{
f=0;
for(j=i-1; j>0&&!f; j--)
{
if(V[j]<0) f=1;
}
if(f)
{
CP[i]=C[j+1]+C[i];
V[i]=V[j+1]+E[i];
} else {
CP[i]=C[i];
V[i]=-1*w+E[i];
}
}
f=32000;
for(i=0; i<g; i++)
{
if(V[i]>=0)
{
if(CP[i]<f)
{
f=CP[i];
}
}
}
if(f==32000)
f=-1;
fo << f;
return 0;
}