Submission #925326

#TimeUsernameProblemLanguageResultExecution timeMemory
925326ZygnoStove (JOI18_stove)C++17
100 / 100
41 ms2952 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int ll; struct guest { int start; int end; }; struct breakLength { int start; int length; }; int main() { int n; // Number of guests int k; // Number of matches cin >> n >> k; vector<guest> guests(n); vector<breakLength> breaks(n-1); for (int i = 0; i < n; i++) { int temp = 0; cin >> temp; guests[i].start = temp; guests[i].end = temp+1; if (i > 0) { breaks[i-1].start = guests[i].start; breaks[i-1].length = guests[i].start - guests[i-1].end; //Length of break between guests } } //Order breaks by length sort(breaks.begin(), breaks.end(), [](breakLength a, breakLength b) { return a.length > b.length; }); //Time from first guest arrives to last guest leaves int totalTime = guests[n-1].end - guests[0].start; //Number of breaks where stove can be turned off int stoveOff = k - 1; //Time stove is on int stoveOn = totalTime; //Remove the length of the longest breaks from the time the stove is on for (int i = 0; i < stoveOff; i++) { stoveOn -= breaks[i].length; } cout << stoveOn << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...