Cod sursa(job #548188)

Utilizator romykPrehari Romica romyk Data 7 martie 2011 10:09:47
Problema Energii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include<fstream>

using namespace std;
fstream f("energii.in",ios::in);
fstream g("energii.out",ios::out);
long n,j,m,nr,i,ok;
float min1,min2,c,w,c1,w1,c2,w2,a[10004][3];
int main()
{f>>n;
f>>m;
for(i=1;i<=n;i++)
{f>>a[i][1];
f>>a[i][2];}
 min1=a[1][2]/a[1][1];
 c=a[1][2];
 w=a[1][1];j=1;
for(i=2;i<=n;i++)
if(a[i][2]/a[i][1]<min1)
{min1=a[i][2]/a[i][1];
c=a[i][2];
w=a[i][1];
j=i;}
a[j][1]=-1;
a[j][2]=1999999;
ok=0;nr=0;
while(ok==0)
{min2=1999999;
i=1;
if(w<m)
{while(i<=n)
{nr++;
    if(a[i][2]/a[i][1]<min2&&a[i][1]!=-1&&a[i][2]!=1999999)
{min2=a[i][2]/a[i][1];
c1=a[i][2];
w1=a[i][1];
j=i;
}
i++;
}
if(c2!=c1&&w2!=w1)
{a[j][1]=-1;
a[j][2]=1999999;
c=c+c1;
c2=c1;
w2=w1;
w=w+w1;
}
if(w>m||nr==n*n)
ok=1;
}
else ok=1;

}
if(w>=m)
g<<c<<" ";
else g<<-1;
    return 0;
}