Cod sursa(job #305504)

Utilizator udrescu_cristiUdrescu Cristian udrescu_cristi Data 17 aprilie 2009 16:51:04
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<iostream.h>
#include<stdio.h>
FILE *f=fopen("energii.in","r"),*g=fopen("energii.out","w");
 int main()
{
long a[1500],b[1500],i,j,n,e,k=0,k1,aux,aux1;
long s=0,s1=0;
long min=5000000; 
fscanf(f,"%ld\n",&n);
fscanf(f,"%ld\n",&e);
 for(i=1;i<=n;i++)
{
fscanf(f,"%ld %ld\n",&a[i],&b[i]);
s+=a[i];
}
if(s<e) fprintf(g,"-1");
else
{
if(s==e)
{
s=0;
for(i=1;i<=n;i++)
s+=b[i];
fprintf(g,"%ld",s);
}
else
{
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
if(a[i]>a[j])
{
aux=a[i];
aux1=b[i];
a[i]=a[j];
b[i]=b[j];
a[j]=aux;
b[j]=aux1;
}
}
for(i=1;i<=n;i++)
{
k=i;
s=a[i];
s1=b[i];
while(k<=n)
{
k1=k;
if(k!=i)
{
s=a[k]+a[i];
s1=b[k]+b[i];
}
while(s<e&&k1<=n)
{
k1++;
s+=a[k1];
s1=s1+b[k1];
}
if(s1<min&&s>=e) min=s1;
k++;
}
}
}
fprintf(g,"%ld",min);
}
return 0;
}