Cod sursa(job #1446399)
Utilizator | Data | 1 iunie 2015 19:13:06 | |
---|---|---|---|
Problema | Energii | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.52 kb |
#include <iostream>
#include <fstream>
using namespace std;
int v[10002][2],i,c,j,G,W,n,d,x,y,z;
int main()
{
i=1;
ifstream f("energii.in");
ofstream g("energii.out");
f>>G>>W;
while (f>>v[i][1]>>v[i][2])
{
c=c+v[i][1];
d=d+v[i][2];
i++;
}
if(c<W) g<<"-1";
else if(c==W) g<<d;
else
{
for(j=1;j<=i;j++)
for(c=j+1;c<=i-1;c++)
if(v[c][1]>v[j][1]) {
d=v[j][1];
v[j][1]=v[c][1];
v[c][1]=d;
d=v[j][2];
v[j][2]=v[c][2];
v[c][2]=d;
}
for(j=1;j<=i-1;j++)
{
if(v[j][2]==v[j+1][2] and v[j+1][1]>v[j][1])
{
d=v[j][1];
v[j][1]=v[j+1][1];
v[j+1][1]=d;
d=v[j][2];
v[j][2]=v[j+1][2];
v[j+1][2]=d;
}
}
x=0;i=1;z=0;
while(x<W)
{
x=x+v[i][1];
z=z+v[i][2];
i++;
}}
cout<<x<<" "<<z;
cout.flush();
return 0;
}