Pagini recente » Cod sursa (job #1020906) | Cod sursa (job #8566) | Cod sursa (job #2237048) | Cod sursa (job #2013611) | Cod sursa (job #1053384)
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
unsigned long g,w,a[10000000],b[10000000],optim,castig,pierderi;
void citeste()
{
unsigned i;
ifstream f ("energii.in");
f>>g;
f>>w;
for(i=0;i<g;i++)
{
f>>a[i];
f>>b[i];
}
f.close();
}
void sorteaza()
{
unsigned inv=1,aux,i;
do{
inv=0;
for(i=0;i<g-1;i++)
if(b[i]>b[i+1])
{
inv=1;
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
aux=b[i];
b[i]=b[i+1];
b[i+1]=aux;
}
}while(inv);
}
int main()
{
citeste();
sorteaza();
ofstream h ("energii.out");
int i,j;
for(i=0;i<g-1&&(castig<=w);i++)
{ optim=i;
for(j=i+1;j<g&&(castig<=w);j++)
if((a[i]+castig<=a[j]+castig)&&(pierderi+b[i]>=pierderi+b[j]))
optim=j;
castig=castig+a[optim];
pierderi=pierderi+b[optim];
}
h<<pierderi;
h.close();
return 0;
}