제출 #341310

#제출 시각아이디문제언어결과실행 시간메모리
341310_aniGift (IZhO18_nicegift)C++17
7 / 100
1032 ms73524 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
using ll = long long;
const int N = 1'000'002;
pair<ll,int> a[N];
priority_queue<pair<ll, int>> q;
vector<pair<ll, vector<int>>>ans;
int main()
{
	int n, k;
	cin >> n >> k;
	for (int i = 0; i < n; i++)
	{
		ll x;
		cin >> x;
		q.push({ x, i });
	}
	while (!q.empty()) {
		vector<int> cur;
		if (q.size() < k)
		{
			cout << -1;
			return 0;
		}
		for (int i = 0; i < k; i++)
		{
			a[i] = q.top();
			cur.push_back(a[i].second);
			q.pop();
		}
		for (int i = 0; i < k - 1; i++)
		{
			a[i].first -= a[k - 1].first;
			if (a[i].first)q.push(a[i]);
		}
		ans.push_back({ a[k - 1].first,cur });
	}
	cout << ans.size() << '\n';
	for (auto b: ans)
	{
		cout << b.first << ' ';
		sort(b.second.begin(), b.second.end());
		for (auto x : b.second)
			cout << x + 1 << ' ';
		cout << '\n';
	}
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

nicegift.cpp: In function 'int main()':
nicegift.cpp:23:16: warning: comparison of integer expressions of different signedness: 'std::priority_queue<std::pair<long long int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   23 |   if (q.size() < k)
      |       ~~~~~~~~~^~~
#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...