Pagini recente » Cod sursa (job #2533387) | Cod sursa (job #2884761) | Cod sursa (job #3321368) | Monitorul de evaluare | Cod sursa (job #3302939)
#include <bits/stdc++.h>
using namespace std;
int s[100005]; /// mai mici deja puse
set <int> v;
int n;
void up(int k)
{
int i=k;
while(i<=n)
{
s[i]++;
i+=i&(-i);
}
}
int sm(int k)
{
int i=k,sum=0;
while(i>=1)
{
sum+=s[i];
i-=i&(-i);
}
return sum;
}
int main()
{
ifstream cin("farfurii.in");
ofstream cout("farfurii.out");
int m,x,in=1;
cin>>n>>m;
for(int i=1;i<=n;++i)
{
v.insert(i);
}
for(int i=1;i<=n;++i)
{
++in;
int c1=0,c2=0,c3=0,q;
for(auto a:v)
{
c1=0;
q=n-in;
c3=q*(q+1)/2;
if(i==4 && a==7)
{
// cout<<c1<<" "<<c2<<" "<<c3<<" ";
}
if((c1+c2+c3)>=m)
{
cout<<a<<" ";
up(a);
// m-=c1;
m-=c2;
v.erase(a);
break;
}
c2++;
}
}
return 0;
}