Pagini recente » Cod sursa (job #3266430) | Cod sursa (job #1904685) | Cod sursa (job #804059) | Cod sursa (job #786020) | Cod sursa (job #2089419)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int v[100050], n, k;
void sterge (int poz)
{
int i;
for(i=poz;i<n;++i)
v[i]=v[i+1];
//n--;
}
void adauga (int poz, int val)
{
int i;
for(i=n;i>=poz;--i)
v[i]=v[i-1];
v[poz]=val;
//n++;
}
int main()
{ ifstream f("farfurii.in");
ofstream g("farfurii.out");
f>>n>>k;
f.close();
int i, l,cn=n, inv;
l=(1+sqrt(1+8*k))/2;
if(l*(l-1)/2<k) l++;
for(i=1;i<=n;++i)
{
if(i<=n-l)
v[i]=i;
else
v[i]=cn, cn--;
}
inv=l*(l-1)/2;
inv-=k;
if(inv)
{
int nr=n-inv;
int x=v[nr];
sterge(nr);
adauga(n-l+1, x);
}
for(i=1;i<=n;++i)
g<<v[i]<<" ";
g.close();
}