Submission #57404

#TimeUsernameProblemLanguageResultExecution timeMemory
57404hugo_pmGift (IZhO18_nicegift)C++14
30 / 100
854 ms62272 KiB
#include <bits/stdc++.h> #pragma GCC diagnostic ignored "-Wunused-result" using namespace std; const int maxVerrous = 1000*1000; int nbVerrous, tailleOperation; int reqUnlock[maxVerrous]; int cur[maxVerrous]; priority_queue<pair<int, int>> prq; int main() { scanf("%d%d", &nbVerrous, &tailleOperation); for (int indVerrou = 0; indVerrou < nbVerrous; ++indVerrou) { scanf("%d", &reqUnlock[indVerrou]); prq.push({reqUnlock[indVerrou], indVerrou}); } vector<vector<int>> operations; operations.reserve(100*1000); vector<int> curOp(tailleOperation); while (! prq.empty()) { int nbRestants = prq.size(); if (nbRestants < tailleOperation) { printf("-1\n"); return 0; } stack<pair<int, int>> remise; for (int indPris = 0; indPris < tailleOperation; ++indPris) { auto e = prq.top(); prq.pop(); curOp[indPris] = e.second; if (e.first > 1) { remise.push({e.first - 1, e.second}); } } operations.push_back(curOp); while (! remise.empty()) { prq.push(remise.top()); remise.pop(); } } printf("%d\n", (int)(operations.size())); for (auto op : operations) { printf("1 "); for (int choisi : op) { printf("%d ", choisi+1); } printf("\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...