Cod sursa(job #2850686)

Utilizator ciobyCiobanu Vlasie cioby Data 17 februarie 2022 12:48:53
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include    <bits/stdc++.h>
using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n,g;

struct date{

    int x,y;
}a[6005];

bool cmp(date a,date b)
{
    return (a.y/a.x>b.y/b.x);
}

int main()
{
    fin>>n>>g;
    for (int i=1;i<=n;i++)
    {
       fin>>a[i].x>>a[i].y;
    }
    sort(a+1,a+1+n,cmp);
    //for (int i=1;i<=n;i++) fout<<a[i].x<<' '<<a[i].y<<'\n';
    int i=1;
    int s=0;
    int aux=0;
    while(aux<=g)
    {
        s+=a[i].y;
        aux+=a[i].x;
        if (aux+a[i+1].x>g) break;
           i++;
    }
    int ramas=g-aux;
    int rez=(ramas*a[i+1].y)/a[i+1].x;
    fout<<s+rez;
}