제출 #1229777

#제출 시각아이디문제언어결과실행 시간메모리
1229777ming2900Stove (JOI18_stove)C++20
100 / 100
15 ms2496 KiB
#include<bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N, K; cin >> N >> K; vector<int> T(N); for (int i = 0; i < N; ++i) { cin >> T[i]; } sort(T.begin(), T.end()); vector<pair<int, int>> intervals; int start = T[0]; int end = T[0] + 1; for (int i = 1; i < N; ++i) { if (T[i] == end) { ++end; } else { intervals.push_back({start, end}); start = T[i]; end = T[i] + 1; } } intervals.push_back({start, end}); int m = intervals.size(); if (m <= K) { int total = 0; for (auto [s, e] : intervals) { total += (e - s); } cout << total << endl; return 0; } vector<int> gaps; for (int i = 0; i < m - 1; ++i) { int gap = intervals[i + 1].first - intervals[i].second; gaps.push_back(gap); } sort(gaps.begin(), gaps.end()); int totalTime = 0; for (auto [s, e] : intervals) { totalTime += (e - s); } for (int i = 0; i < m - K; ++i) { totalTime += gaps[i]; } cout << totalTime << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...