Pagini recente » Cod sursa (job #113539) | Cod sursa (job #727433) | Cod sursa (job #2956313) | Cod sursa (job #2854679) | Cod sursa (job #2982643)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("partitie.in");
ofstream fout("partitie.out");
vector<vector<int>>a;
vector<int>rasp;
int nrg = 1;
int n, d;
int Modul(int x)
{
if(x >= 0)
return x;
return -x;
}
int main()
{
int x;
fin >> n >> d;
fin >> x;
vector<int>b;
b.push_back(x);//min
b.push_back(x);//max
a.push_back(b);
rasp.push_back(1);
for(int i = 1; i < n; i++)
{
fin >> x;
bool ok = false;
int ind = 0;
for(int j = 0; j < nrg; j++)
{
if(Modul(a[j][0]-x) >= d && Modul(a[j][1]-x) >= d)
{
ok = true;
a[j][0] = min(a[j][0], x);
a[j][1] = max(a[j][1], x);
ind = j+1;
break;
}
}
if(!ok)
{
nrg++;
vector<int>b;
b.push_back(x);//min
b.push_back(x);//max
a.push_back(b);
ind = nrg;
}
rasp.push_back(ind);
}
fout << nrg << "\n";
for(int i = 0; i < rasp.size(); i++)
fout << rasp[i] << "\n";
return 0;
}