제출 #1150997

#제출 시각아이디문제언어결과실행 시간메모리
1150997justkitkatLet's Win the Election (JOI22_ho_t3)C++17
0 / 100
6 ms8264 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vi vector<int>
#define show3(x,y,z) cout<<#x<<": "<<x<<" | "<<#y<<": "<<y<<" | "<<#z<<": "<<z<<endl;
int n,k;
vector<pair<int,int>>a;
#define ld long double
int memo[1005][1005];
ld dp(int pos, int collab){
    if(pos==n)return 0;
    if(memo[pos][collab]!=-1)return memo[pos][collab];
    ld res=2e18;
    // dont take collab
    res=min(res,dp(pos+1,collab)+a[pos].second/(ld)collab);
    //take collab
    if(a[pos].first!=LLONG_MAX)
        res=min(res,dp(pos+1,collab+1)+a[pos].first/(ld)collab);
    // cout<<"pos: "<<pos<<endl;
    // cout<<a[pos].first<<' '<<a[pos].second<<endl;
    // cout<<res<<endl;
    return memo[pos][collab]=res;

}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    cin>>n>>k;
    fill(&memo[0][0],&memo[0][0]+1005*1005,-1);
    a.resize(n);
    for(auto &x:a){
        cin>>x.second>>x.first;
        if(x.first==-1)x.first=LLONG_MAX;
    }
    sort(a.begin(),a.end());
    ld ans=dp(0,1);
    cout<<ans;


}
#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...