제출 #1319566

#제출 시각아이디문제언어결과실행 시간메모리
1319566Jawad_Akbar_JJLet's Win the Election (JOI22_ho_t3)C++20
10 / 100
4 ms332 KiB
#include <iostream>
#include <vector>
#include <iomanip>

#include <algorithm>

using namespace std;
const int N = 505;
int a[N], b[N];

int main(){
	cout<<fixed<<setprecision(10);
	int n, k;
	cin>>n>>k;

	vector<pair<int, int>> clb(1);

	for (int i=1;i<=n;i++){
		cin>>a[i]>>b[i];
		if (b[i] == -1)
			b[i] = 1001;
		clb.push_back({b[i], a[i]});
	}
	sort(begin(clb) + 1, end(clb));

	long double tm = 0, sm, Ans = k * 1000;
	for (int i=1;i<=k;i++){
		vector<int> v;
		sm = 0;

		for (int j=i;j<=n;j++)
			v.push_back(clb[j].second);
		sort(begin(v), end(v));
		
		for (int j=1;j<=k - i + 1;j++)
			sm += v[j - 1];
		Ans = min(Ans, tm + sm / (1.0 * i));
		
		if (clb[i].first == 1001)
			break;
		tm = tm + (1.0 * clb[i].first) / (1.0 * i);
	}

	cout<<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...