제출 #1294898

#제출 시각아이디문제언어결과실행 시간메모리
1294898kian2009Road Construction (JOI21_road_construction)C++20
6 / 100
355 ms23308 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const int MAXN = 3e5 + 10;

ll n, k, x[MAXN], y[MAXN];
set<pair<ll, ll>> s;
vector<ll> res;

void input() {
	cin >> n >> k;
	for (int i = 0; i < n; i++)
		cin >> x[i] >> y[i];	
}

void findAns() {
	for (int i = 0; i < n - 1; i++)
		s.insert({x[i + 1] - x[i], i + 1});
	while (res.size() < k) {
		pair<ll, ll> h = (*s.begin());
		res.push_back(h.first);
		s.erase(h);
		if (h.second != (n - 1))
			s.insert({h.first + x[h.second + 1] - x[h.second], h.second + 1});	
	}
}

int main() {
	ios::sync_with_stdio(false); cin.tie(0);
	input();
	sort(x, x + n);
	findAns();
	for (auto x : res)
		cout << x << '\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...
#Verdict Execution timeMemoryGrader output
Fetching results...