Pagini recente » Cod sursa (job #2604395) | Cod sursa (job #2510594) | Cod sursa (job #1063439) | Cod sursa (job #2654432) | Cod sursa (job #2407713)
#include <bits/stdc++.h>
using namespace std;
const int N=200010;
int n, k, lft;
bool usd[N];
vector<int> v(N, 0);
int main()
{
cin>>n>>k;
lft=n;
string s(n,'*');
for(int i=1; i<=n; i++)
{
int x;
cin>>x;
v[x]=i;
}
//sort(begin(v)+1,begin(v)+n+1);
int cnt=n;
int t=0;
while(lft)
{
while(usd[v[cnt]])
cnt--;
s[v[cnt]-1]=t+'1';
usd[v[cnt]]=true;
lft--;
for(int i=v[cnt]-1, j=k; j>0&&i>0; )
{
if(usd[i])
{i-=2*k+1;continue;}
usd[i]=true;
j--;
s[i-1]=t+'1';
lft--;
i--;
}
for(int i=v[cnt]+1, j=k; j>0&&i<=n; )
{
if(usd[i])
{i+=2*k+1;continue;}
usd[i]=true;
j--;
s[i-1]=t+'1';
lft--;
i++;
}
cnt--;
t=t^1;
}
cout<<s;
return 0;
}