제출 #1156386

#제출 시각아이디문제언어결과실행 시간메모리
1156386fatman87878Let's Win the Election (JOI22_ho_t3)C++20
10 / 100
513 ms472 KiB
#include<bits/stdc++.h>
using namespace std;
#define IOS cin.tie(nullptr)->sync_with_stdio(0),cin.exceptions(cin.failbit);
#define lb(x) (x)&-(x)
#define all(x) (x).begin(),(x).end()
#define ll long long

#define db long double

constexpr int maxN=5e2+5;

int n,k;

db dp[maxN];

pair<db,db> val[maxN];

inline db DP(int G){
    fill(dp+1,dp+k+1,1e18);
    for(int i = 1;i<=n;i++)for(int j = k;j;j--)
        dp[j] = min(dp[j],dp[j-1]+(j<=G?(val[i].first/j):(val[i].second/(G+1))));
    return dp[k];
}

int main(){
    IOS
    cin>>n>>k;
    for(int i = 1;i<=n;i++){
        cin>>val[i].second>>val[i].first;
        if(val[i].first==-1)val[i].first = 1e13;
    }
    sort(val+1,val+n+1);
    db ans = 1e18;
    for(int i = 0;i<=k;i++)ans = min(ans,DP(i));
    cout<<fixed<<setprecision(15)<<ans<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...