Pagini recente » Cod sursa (job #1266533) | Cod sursa (job #1882607) | Cod sursa (job #2039028) | Cod sursa (job #433812) | Cod sursa (job #308855)
Cod sursa(job #308855)
#include<fstream.h>
#include<values.h>
long i,a[1002],b[1002],aux,min,gata,inj,mins,sx,sy,s,m,ss,j,n;
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
f>>n>>m;
min=MAXLONG;
mins=MAXLONG;
for (i=1;i<=n;i++)
{
f>>a[i]>>b[i];
sx+=a[i];sy+=b[i];
}
if (sx<m) g<<-1<<'\n';
else if (sx==m) g<<sy<<'\n';
else {
inj=n;
while (inj>1){
inj/=2;
do{
gata=1;
for (i=1;i<=n-inj;i++)
if (b[i]<b[i+inj]){
aux=a[i];
a[i]=a[i+inj];
a[i+inj]=aux;
aux=b[i];
b[i]=b[i+inj];
b[i+inj]=aux;
gata=0;
}
}
while(!gata);
}
for (i=1;i<=n;i++)
{
s=0;ss=0;
for (j=i;j<=n;j++)
{
s+=a[j];ss+=b[j];
if (s==m && ss<=mins) { mins=ss;}
else if (s>m&&ss<=mins) {mins=ss;}
}
}
g<<mins<<'\n';
}
g.close();
return 0;
}