Pagini recente » Cod sursa (job #329831) | Cod sursa (job #888339) | Cod sursa (job #576212) | Cod sursa (job #1633696) | Cod sursa (job #1787834)
#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; }