Cod sursa(job #1902977)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 4 martie 2017 21:36:49
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("energii.in");
ofstream fout("energii.out");
struct energie{
    int cant,cost;
}a[10001];
int n,i,j,g,w,s,m,stot,costt;
bool cmp(energie a, energie b)
{
    if(a.cant!=b.cant)
      return a.cant<b.cant;
      else
       return a.cost<b.cost;
}
int main()
{
f>>g>>w;
  for(i=1;i<=g;i++)
    {f>>a[i].cant>>a[i].cost;
    stot+=a[i].cant;
    costt+=a[i].cost;
    }

    if(stot<w)
     fout<<"-1";
     else
       if(stot==w)
         fout<<costt;
         else
     {
         m=g;
    sort(a+1,a+g+1,cmp);
    while(a[g].cant<=w)
    { w-=a[g].cant;
        g--;
    }

           for(i=g+1;i<=m;i++)
        s+=a[i].cost;
     if(w!=0)
        {
            for(i=1;i<=g;i++)
              if(w==a[i].cant)
              s+=a[i].cost;

        }
        fout<<s;
     }

return 0;
}