Cod sursa(job #1787834)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 25 octombrie 2016 08:55:41
Problema Partitie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
using namespace std;

int main(){
	ifstream f("partitie.in");
	ofstream g("partitie.out");

	int n, d;
	f >> n >> d;

	vector<pair<int, int>> v(n);

	for(int i = 0, x; i < n; ++i){
		f >> v[i].first;
		v[i].second = i; }

	sort(begin(v), end(v));

	vector<int> rez(n, 0);

	queue<int> q;

	int part = 1;

	for(int i = 0; i < n; ++i){
		if(q.empty() || v[q.front()].first+d > v[i].first){
			rez[v[i].second] = part++;
			q.push(i); }
		else{
			rez[v[i].second] = rez[v[q.front()].second];
			q.pop();
			q.push(i); } }

	g << part-1 << '\n';
	for(const auto x : rez){
		g << x << '\n'; }

	return 0; }