Submission #924838

#TimeUsernameProblemLanguageResultExecution timeMemory
924838ZygnoStove (JOI18_stove)C++17
0 / 100
0 ms348 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 } } //Combine guests until there are k guests //Order breaks by length sort(breaks.begin(), breaks.end(), [](breakLength a, breakLength b) { return a.length < b.length; }); for(int i = 0; i < k; i++) { for(int j = 0; j < n; j++) { if(breaks[i].start == guests[j].start) { int x = 1; while(guests[j-x].end == -1) { x++; } guests[j-x].end = guests[j].end; guests[j].end = -1; break; } } } for(int i = n-1; i >= 0; i--) { if(guests[i].end == -1) { guests.erase(guests.begin() + i); } } int stove = 0; for(int i = 0; i < guests.size(); i++) { stove += guests[i].end - guests[i].start; } cout << stove << endl; return 0; }

Compilation message (stderr)

stove.cpp: In function 'int main()':
stove.cpp:70:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<guest>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |     for(int i = 0; i < guests.size(); i++)
      |                    ~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...