Pagini recente » Cod sursa (job #1387796) | Cod sursa (job #2603036) | Cod sursa (job #2686758) | Cod sursa (job #830357) | Cod sursa (job #2960895)
#include <bits/stdc++.h>
using namespace std;
ifstream f("partitie.in");
ofstream g("partitie.out");
struct extreme
{
int maxi, mini;
};
extreme A[30005];
int n, K, P[30005], k, x, ok;
int main()
{
f >> n >> K;
for(int i = 1; i <= n; i ++)
{
f >> x; ok = 0;
for(int j = 1; j <= k; j ++)
if(abs(A[j].maxi - x) >= K && abs(x - A[j].mini) >= K)
{
A[j].maxi = max(A[j].maxi, x);
A[j].mini = min(A[j].mini, x);
P[i] = j; ok = 1; break;
}
if(ok == 0)
{
A[++ k] = {x, x};
P[i] = k;
}
}
g << k << '\n';
for(int i = 1; i <= n; i ++)
g << P[i] << '\n';
return 0;
}