Submission #40451

#TimeUsernameProblemLanguageResultExecution timeMemory
40451szawinisGift (IZhO18_nicegift)C++14
30 / 100
206 ms28136 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e6+1; int n, k, a[N]; vector<int> ls[N]; int main() { scanf("%d %d", &n, &k); int sum = 0; for(int i = 0; i < n; i++) scanf("%d", a+i), sum += a[i]; if(sum % k) printf("-1"), exit(0); priority_queue<pair<int,int> > pq; for(int i = 0; i < sum / k; i++) pq.emplace(k, i); for(int i = 0; i < n; i++) { unordered_set<int> mark; for(int j = 0; j < a[i]; j++) { assert(!pq.empty()); auto curr = pq.top(); pq.pop(); --curr.first; if(mark.count(curr.second)) printf("-1"), exit(0); ls[curr.second].push_back(i); pq.push(curr); mark.insert(curr.second); } } printf("%d\n", sum / k); for(int i = 0; i < sum / k; i++) { assert(ls[i].size() == k); printf("1 "); for(int idx: ls[i]) printf("%d ", idx+1); printf("\n"); } }

Compilation message (stderr)

In file included from /usr/include/c++/5/cassert:43:0,
                 from /usr/include/x86_64-linux-gnu/c++/5/bits/stdc++.h:33,
                 from nicegift.cpp:1:
nicegift.cpp: In function 'int main()':
nicegift.cpp:29:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   assert(ls[i].size() == k);
                       ^
nicegift.cpp:8:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &k);
                        ^
nicegift.cpp:10:58: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i = 0; i < n; i++) scanf("%d", a+i), sum += a[i];
                                                          ^
#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...