#include <bits/stdc++.h>
#define pb push_back
#define fst first
#define snd second
#define fore(i,a,b) for(int i=a,pao=b;i<pao;++i)
#define SZ(x) ((int)x.size())
#define ALL(x) x.begin(),x.end()
#define mset(a,v) memset((a),(v),sizeof(a))
#define FIN ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
using namespace std;
typedef long long ll;
const int MAXN=505,INF=1e9;
int A[MAXN],B[MAXN];
int main(){
int n,k;cin>>n>>k;
vector<int>v1,v2;
fore(i,0,n){
cin>>A[i]>>B[i];
if(B[i]==-1)v1.pb(A[i]);
else v2.pb(A[i]);
}
sort(ALL(v1));
sort(ALL(v2));
double ans=INF;
fore(i,0,SZ(v2)+1){//elijo i colaboradores
double tot=0,d=1;
int cnt=0;
fore(j,0,i){
tot+=(double)v2[j]/d;
d++;
cnt++;
}
if(k-i>SZ(v1))continue;
fore(j,0,k-i){
tot+=(double)v1[j]/d;
cnt++;
}
if(cnt>=k)ans=min(ans,tot);
}
cout<<fixed<<setprecision(20)<<ans<<endl;
}
| # | 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... |