Submission #1344597

#TimeUsernameProblemLanguageResultExecution timeMemory
1344597orionarafStove (JOI18_stove)C++20
20 / 100
1095 ms580 KiB
#include<bits/stdc++.h>
using namespace std;

long long N;
long long MIN_TIME = 1e9;
vector<long long> guest_times;

void recurse(int i, long long total_time, long long match_count) {
    if (i == N - 1) {
        MIN_TIME = min(MIN_TIME, total_time);
    } else {
        long long gap = guest_times[i + 1] - guest_times[i] - 1;
        recurse(i + 1, total_time + gap + 1, match_count);
        if (match_count > 0) {
            recurse(i + 1, total_time + 1, match_count - 1);
        }
    }
}

int main() {
    std::ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    long long m; cin >> N >> m;
    guest_times.resize(N);

    for (int i = 0; i < N; i++) cin >> guest_times[i];
    recurse(0, 1, m - 1);
    cout << MIN_TIME;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...