Cod sursa(job #1761366)

Utilizator TomescuTudorTomescu Tudor TomescuTudor Data 22 septembrie 2016 09:16:51
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<algorithm>
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n,gmax,s;
struct ob{
    int p,gr;
    float x;
    };
ob v[5001];
bool test(ob t1,ob t2)
{return(t1.x>t2.x || (t1.x==t2.x && t1.gr<t2.gr));}
int main()
{
    f>>n;
    f>>gmax;
    for(int i=1;i<=n;++i)
    {
        f>>v[i].gr>>v[i].p;
        v[i].x=v[i].p/(v[i].gr+0.0);
    }
    sort(v+1,v+n+1,test);
    for(int i=1;i<=n;++i)
    {
        if(gmax-v[i].gr>=0)
        {s+=v[i].p;
        gmax-=v[i].gr;}
        g<<s<<'\n';
        g.close();
        return 0;
    }

}