Cod sursa(job #2003984)

Utilizator NashikAndrei Feodorov Nashik Data 24 iulie 2017 15:37:55
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
//#include <iostream>
#include <fstream>
#include <algorithm>
#include <iomanip>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
struct func
{
    int greutate,pret;
}v[10005];
bool mysort(func a,func b)
{
    if(a.greutate*b.pret<=b.greutate*a.pret)
    {
        return true;
    }
    return false;


}
int main()
{
    int n,i,s,g;
    double fin=0.0;
    cin>>g>>n;
    for(i=1;i<=n;i++)
        cin>>v[i].greutate>>v[i].pret;
    sort(v+1,v+n+1,mysort);
    for(i=1;i<=n;i++)
        cout<<v[i].greutate<<" "<<endl;
    int pos=1;
    cout<<setprecision(10);
    cout<<fixed;
    cout<<setprecision(4);
    while(g>0 and pos!=n+1)
    {
        if(v[pos].greutate<=g)
            {
                cout<<v[pos].greutate<<" "<<v[pos].pret<<" 1"<<endl;
                g-=v[pos].greutate;
            }
        else
        {
            cout<<v[pos].greutate<<" "<<v[pos].pret<<" "<<float(g/float(v[pos].greutate));
            g-=v[pos].greutate;
        }
        pos++;
    }

    return 0;
}