Submission #1295640

#TimeUsernameProblemLanguageResultExecution timeMemory
1295640trigonLet's Win the Election (JOI22_ho_t3)C++20
5 / 100
2 ms348 KiB
#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 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...