#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define MOD 1000000009
#define INF 1000000019
#define INFL 1000000000000000099LL
ll a,b,c,d,t,n,m,l,q,k,ak;
ld ans=INFL,ak2;
vector<pair<ld,ld>>in;
ld dp1[507][507];//dla sufiksu i chcac j glosow
ld dp2[507][507];//dla prefiksu i-1, majac j-1 pomocnikow
void f(ll x){
for(ll i=0;i<507;i++){
dp1[i][0]=0;
dp2[i][0]=INFL;
for(ll j=1;j<507;j++){
dp1[i][j]=INFL;
dp2[i][j]=INFL;
}
}
for(ll i=n-1;i>=0;i--){
for(ll j=1;j<=k;j++){
dp1[i][j]=min(dp1[i+1][j],dp1[i+1][j-1]+in[i].ss/(x+1));
}
}
dp2[0][1]=0;
for(ll i=1;i<=n;i++){
for(ll j=1;j<=k+1;j++){
dp2[i][j]=min(dp2[i-1][j]+in[i-1].ss/(x+1),dp2[i-1][j-1]+(j!=1)*(in[i-1].ff/(j-1)));
}
}
for(ll i=0;i<=n;i++){
ans=min(ans,dp2[i][x+1]+dp1[i][max(0LL,k-i)]);
}
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n>>k;
for(ll i=0;i<n;i++){
cin>>a>>b;
if(b==-1)b=INFL;
in.pb({b,a});
}
sort(in.begin(),in.end());
for(ll i=0;i<k;i++)f(i);
cout<<setprecision(20)<<ans;
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... |