Submission #1314911

#TimeUsernameProblemLanguageResultExecution timeMemory
1314911WH8Let's Win the Election (JOI22_ho_t3)C++20
10 / 100
5 ms332 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pll pair<long long, long long>
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define endl '\n'
#define ld long double
#define sz(x) static_cast<int>((x).size())
#define i5 tuple<int,int,int,int,int>
#define all(x) x.begin(), x.end()
#define iiii tuple<int, int,int,int>
#define ld long double
signed main(){
	int n,k,c=0;cin>>n>>k;
	vector<pll> v(n);
	for(int i=0;i<n;i++){
		cin>>v[i].s>>v[i].f;
		if(v[i].f == -1){
			v[i].f=1e9;
		}
		else c++;
	}
	sort(all(v), [&](pll a, pll b){
			if(a.f==b.f)return a.s > b.s;
			else return a.f < b.f;
			});
	ld ans=1e9;
	for(int i=0;i<=c;i++){
		ld cur=0;
		for(int j=0;j<i;j++){
			cur += v[j].f / (ld)(j+1);
		}
		vector<int> t;
		for(int j=i;j<n;j++){
			t.pb(v[j].s);
		}
		sort(all(t));
		for(int j=0;j<k-i;j++){
			cur+=(t[j] / (ld)(i+1));
		}

		ans=min(ans, cur);
	}
	cout<<fixed<<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...