#include <bits/stdc++.h>
using namespace std;
const double INF = 1e9;
struct State {
int A, B;
};
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, K;
cin >> N >> K;
vector<State> states(N);
for (int i = 0; i < N; i++) {
cin >> states[i].A >> states[i].B;
}
// DP: dp[v] = min hours to get v votes
vector<double> dp(N+3, INF);
dp[0] = 0;
for (auto &s : states) {
for (int v = N; v >= 0; v--) {
// Case 1: Rie alone gets a vote
dp[v+1] = min(dp[v+1], dp[v] + s.A);
// Case 2: Rie + collaborator (counts as 2 votes)
if (s.B != -1) {
dp[v+2] = min(dp[v+2], dp[v] + s.B);
}
}
}
cout << fixed << setprecision(6) << dp[K] << "\n";
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |