제출 #40451

#제출 시각아이디문제언어결과실행 시간메모리
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");
	}
}

컴파일 시 표준 에러 (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...