Submission #1209400

#TimeUsernameProblemLanguageResultExecution timeMemory
1209400PenguinsAreCuteRoad Construction (JOI21_road_construction)C++17
6 / 100
184 ms5544 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
	int n, k;
	cin >> n >> k;
	int x[n], y[n];
	for(int i=0;i<n;i++)
		cin >> x[i] >> y[i];
	sort(x,x+n);
	int l=0, h=2e9; 
	while(h-l>1) {
		int m=(l+h)/2;
		long long cnt=0;
		int p = 0;
		for(int i=0;i<n;i++) {
			while(p<n&&x[p]-x[i]<=m)
				p++;
			cnt += (p - 1 - i);
		}
		if(cnt < k)
			l = m;
		else
			h = m;
	}
	vector<int> v;
	int p = 0;
	for(int i=0;i<n;i++) {
		while(p<n&&x[p]-x[i]<=h)
			p++;
		for(int j=i+1;j<p;j++)
			v.push_back(x[j]-x[i]);
	}
	sort(v.begin(),v.end());
	for(int i=0;i<k;i++)
		cout << v[i] << "\n";
}
#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...