Cod sursa(job #3184497)

Utilizator Adrian_TarziuAdrian Tarziu Adrian_Tarziu Data 16 decembrie 2023 10:12:12
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>

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

int main()
{
int n,m;
double s=0;
cin>>n>>m;
int a[10001],b[10001];
for(int i=1;i<=n;i++)
    cin>>a[i]>>b[i];

for(int i=1;i<=n;i++)
{
    for(int j=i+1;j<=n;j++)
    {
        if(b[i]*a[j]<b[j]*a[i])
        {
            swap(a[i],a[j]);
            swap(b[i],b[j]);
        }
    }
}

int j=1;
while(m-a[j]>=0 && j<=n)
{
    m-=a[j];
    s+=b[j];
    ++j;
}
if(j<=n)
s+=(float )m*b[j]/a[j];
cout<<s;
    return 0;
}