Submission #1263809

#TimeUsernameProblemLanguageResultExecution timeMemory
1263809goulthenLet's Win the Election (JOI22_ho_t3)C++20
10 / 100
1 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define rep(i,a,b) for (int i = a; i <= b; ++i)
#define pii pair<int,int>
#define fi first
#define se second

const int MAXN = 510;
array<int,3> a[MAXN], b[MAXN];
bool mk[MAXN];

int32_t main() {
	ios_base::sync_with_stdio(0); cin.tie(nullptr);

	int n,k; cin >> n >> k;
	rep(i,1,n) {
		cin >> a[i][1] >> a[i][0];
		a[i][2] = b[i][2] = i;
		b[i][0] = a[i][1];
		b[i][1] = a[i][0];
		if (a[i][0]==-1) a[i][0] = 1e9;
	}
	sort(a+1, a+n+1);
	sort(b+1, b+n+1);

	double ans = 1e9;
	rep(j,0,k) {
		if (a[j][0] == 1e9) break;

		double cur = 0;
		int cnt = 1;
		rep(i,1,j) {
			cur += (double)a[i][0]/cnt;
			mk[a[i][2]] = 1;
			cnt++;
		}
		int cc = 0;
		rep(i,1,n) {
			if (cc == k-j) break;
			if (mk[b[i][2]])continue;
			cur += (double)b[i][0]/cnt;
			cc++;
		}
		//cout << cur << '\n';
		ans = min(ans, cur);
	}
	cout << fixed << setprecision(20) << 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...