답안 #937998

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
937998 2024-03-04T17:30:47 Z vjudge1 Let's Win the Election (JOI22_ho_t3) C++17
컴파일 오류
0 ms 0 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{
		if(K == N) continue;
		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";
}

Compilation message

Main.cpp: In function 'int main()':
Main.cpp:52:14: error: continue statement not within a loop
   52 |   if(K == N) continue;
      |              ^~~~~~~~