#include <bits/stdc++.h>
using namespace std;
const int NMAX=500;
int a[NMAX+5], n, k, b[NMAX+5], indb[NMAX+5], inda[NMAX+5], rez=0, used[NMAX+5];
int main ()
{
ios_base :: sync_with_stdio (0);
cin.tie (nullptr);
cin >> n >> k;
int valid=0;
for (int i=1;i<=n;i++)
cin >> a[i] >> b[i], inda[i]=i, indb[i]=i, valid+=b[i]!=-1;
sort (inda+1, inda+n+1, [] (int x, int y) {return a[x]<a[y];});
sort (indb+1, indb+n+1, [] (int x, int y) {return b[x]<b[y];});
double ans=0;
for (int nr=0;nr<=min (valid, k);nr++)
{
int cnt=1;
double crt=0;
memset (used, 0, sizeof(used));
for (int i=1;cnt<=nr;i++)
{
if (b[indb[i]]==-1)
continue;
crt+=1.0*b[indb[i]]/cnt;
used[indb[i]]=1;
cnt++;
}
int tt=0;
for (int i=1;tt<k-nr;i++)
{
if (used[inda[i]])
continue;
tt++;
crt+=1.0*a[inda[i]]/cnt;
}
ans=nr==0?crt:min (ans, crt);
}
cout << fixed << ans << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |