답안 #938006

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
938006 2024-03-04T17:33:14 Z vjudge1 Let's Win the Election (JOI22_ho_t3) C++17
21 / 100
992 ms 752 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{
		assert(false);
		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[elem+1][j+1] = min(dp[elem+1][j+1], dp[elem][j] + v[i].first / (j+1.0));
						dp[elem+1][j] = min(dp[elem+1][j], dp[elem][j] + v[i].second / (collaborators+1.0));
					}
				}
			}
			ans = min(ans, dp[K][collaborators]);
		}
	}*/
	cout << fixed << setprecision(8) << ans << "\n";
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 600 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 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 4 ms 348 KB Output is correct
9 Correct 5 ms 348 KB Output is correct
10 Correct 5 ms 496 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 600 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 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 4 ms 348 KB Output is correct
9 Correct 5 ms 348 KB Output is correct
10 Correct 5 ms 496 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 3 ms 500 KB Output is correct
13 Correct 4 ms 348 KB Output is correct
14 Correct 3 ms 348 KB Output is correct
15 Correct 4 ms 600 KB Output is correct
16 Correct 6 ms 348 KB Output is correct
17 Correct 6 ms 344 KB Output is correct
18 Correct 5 ms 344 KB Output is correct
19 Correct 8 ms 492 KB Output is correct
20 Correct 6 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 950 ms 752 KB Output is correct
2 Correct 924 ms 748 KB Output is correct
3 Correct 917 ms 496 KB Output is correct
4 Correct 958 ms 496 KB Output is correct
5 Correct 920 ms 512 KB Output is correct
6 Correct 992 ms 492 KB Output is correct
7 Correct 945 ms 496 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 600 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 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 4 ms 348 KB Output is correct
9 Correct 5 ms 348 KB Output is correct
10 Correct 5 ms 496 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 3 ms 500 KB Output is correct
13 Correct 4 ms 348 KB Output is correct
14 Correct 3 ms 348 KB Output is correct
15 Correct 4 ms 600 KB Output is correct
16 Correct 6 ms 348 KB Output is correct
17 Correct 6 ms 344 KB Output is correct
18 Correct 5 ms 344 KB Output is correct
19 Correct 8 ms 492 KB Output is correct
20 Correct 6 ms 348 KB Output is correct
21 Incorrect 1 ms 344 KB Output isn't correct
22 Halted 0 ms 0 KB -