Cod sursa(job #1618944)

Utilizator Chirita_MateiChirita Matei Chirita_Matei Data 28 februarie 2016 10:07:34
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <algorithm>

using namespace std;
ofstream fout("rucsac.out");
ifstream fin("rucsac.in");

struct obiect{
    int p;
    int c;
    double r;
}v[10000];

bool comp(obiect a, obiect b)
{
    return a.r>b.r;
}

double s;
int n,m,i;

int main()
{
    fin>>m>>n;

    for(i=1;i<=n;i++)
    {
        fin>>v[i].c>>v[i].p;

        v[i].r=(double)v[i].p/v[i].c;
    }

    sort(v+1,v+1+n,comp);

    for(i=1;;i++)
    {
        if(n>=v[i].c)
        {
            s+=v[i].p;
            n-=v[i].c;
        }

        else
        {
            s+=v[i].r*n;
            break;
        }
    }

    fout<<(int)s;

    return 0;
}