Cod sursa(job #2392941)

Utilizator dumbledoreTulbu Gabriela dumbledore Data 30 martie 2019 17:14:42
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <bits/stdc++.h>
using namespace std;
int main()
{
    ifstream fi("rucsac.in");
    ofstream fo("rucsac.out");
    int n,g,i,a[50], c[50],suma,cost;
    double b[50];
    fi>>n>>g;
    for (i=1; i<=n; i++) {fi>>a[i]>>c[i]; b[i]=1.0*c[i]/a[i]; }
    for (i=1; i<=n; i++)
        for (int j=i+1; j<=n; j++) if (b[j]>b[i]) {swap(a[j],a[i]); swap(c[j],c[i]); swap(b[j],b[i]);}
    suma=0; cost=0; i=1;
    while (suma+a[i]<=g) {suma=suma+a[i]; cost=cost+c[i]; i++;}
    cost=(g-suma)*b[i]+cost;
    fo<<cost;
return 0;
}