Submission #937987

# Submission time Handle Problem Language Result Execution time Memory
937987 2024-03-04T17:26:35 Z vjudge1 Let's Win the Election (JOI22_ho_t3) C++17
21 / 100
954 ms 704 KB
#include <bits/stdc++.h>

using namespace std;

typedef long double ld;

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

	int N, K; cin >> N >> K;
	vector<pair<ld, ld>> v(N);
	bool special = true;
	for(int i = 0; i < N; i++){
		cin >> v[i].second >> v[i].first;
		if(v[i].first == -1) v[i].first = 1e9;
		else if(v[i].first != v[i].second) special = false;
	}
	sort(v.begin(), v.end());
	ld ans = 7e18;
	if(special){
		for(int collaborators = 0; collaborators < K; collaborators++){
			ld cost = 0;
			ld hv = 1;
			for(int i = 0; i < collaborators; i++){
				cost += v[i].first / hv;
				hv++;
			}
			vector<ld> a;
			for(int i = collaborators; i < N; i++){
				a.push_back(v[i].second);
			}
			sort(a.begin(), a.end());
			for(int i = 0; i < K - collaborators; i++){
				cost += a[i] / hv;
			}
			ans = min(ans, cost);
		}
	}else if(K == N){
		for(ld collaborators = 0; collaborators < K; collaborators++){
			vector<ld> dp(collaborators + 1, 1e18);
			dp[0] = 0;
			for(int i = 0; i < N; i++){
				for(ld j = collaborators; j >= 0; j--){
					if(j != collaborators) dp[j+1] = min(dp[j+1], dp[j] + v[i].first / (j+1.0));
					dp[j] += v[i].second / (collaborators+1.0);
				}
			}
			ans = min(ans, dp[collaborators]);
		}
	}else{
		for(ld collaborators = 0; collaborators < K; collaborators++){
			vector<vector<ld>> dp(K+1, vector<ld>(collaborators + 1, 1e18));
			dp[0][0] = 0;
			for(int i = 0; i < N; i++){
				for(int elem = K - 1; elem >= 0; elem--){					
					for(ld j = collaborators; j >= 0; j--){
						if(j != collaborators) dp[K+1][j+1] = min(dp[K+1][j+1], dp[K][j] + v[i].first / (j+1.0));
						dp[K+1][j] = min(dp[K+1][j], dp[K][j] + v[i].second / (collaborators+1.0));
					}
				}
			}
			ans = min(ans, dp[K][collaborators]);
		}
	}
	cout << fixed << setprecision(8) << ans << "\n";
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 3 ms 348 KB Output is correct
8 Correct 5 ms 496 KB Output is correct
9 Correct 5 ms 348 KB Output is correct
10 Correct 5 ms 500 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 3 ms 348 KB Output is correct
8 Correct 5 ms 496 KB Output is correct
9 Correct 5 ms 348 KB Output is correct
10 Correct 5 ms 500 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 2 ms 348 KB Output is correct
13 Correct 4 ms 348 KB Output is correct
14 Correct 5 ms 504 KB Output is correct
15 Correct 4 ms 348 KB Output is correct
16 Correct 7 ms 348 KB Output is correct
17 Correct 6 ms 348 KB Output is correct
18 Correct 6 ms 504 KB Output is correct
19 Correct 8 ms 500 KB Output is correct
20 Correct 7 ms 452 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 604 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 604 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 604 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 954 ms 496 KB Output is correct
2 Correct 943 ms 704 KB Output is correct
3 Correct 922 ms 500 KB Output is correct
4 Correct 913 ms 512 KB Output is correct
5 Correct 912 ms 348 KB Output is correct
6 Correct 916 ms 596 KB Output is correct
7 Correct 909 ms 504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 3 ms 348 KB Output is correct
8 Correct 5 ms 496 KB Output is correct
9 Correct 5 ms 348 KB Output is correct
10 Correct 5 ms 500 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 2 ms 348 KB Output is correct
13 Correct 4 ms 348 KB Output is correct
14 Correct 5 ms 504 KB Output is correct
15 Correct 4 ms 348 KB Output is correct
16 Correct 7 ms 348 KB Output is correct
17 Correct 6 ms 348 KB Output is correct
18 Correct 6 ms 504 KB Output is correct
19 Correct 8 ms 500 KB Output is correct
20 Correct 7 ms 452 KB Output is correct
21 Runtime error 1 ms 604 KB Execution killed with signal 11
22 Halted 0 ms 0 KB -