Cod sursa(job #3184497)
Utilizator | 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;
}