Pagini recente » Cod sursa (job #3170377) | Cod sursa (job #2676392) | Cod sursa (job #679213) | Cod sursa (job #184767) | Cod sursa (job #2314691)
#include <fstream>
#include <algorithm>
#include <cmath>
#define nmax 100001
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int main()
{ int n,k;
fin>>n>>k;
int m;
int delta=1+8*k;
delta=sqrt(delta);
m=(1+delta)/2;
int i;
if(k==((m-1)*m)/2)
{ for(i=1; i<=n-m; i++)
fout<<i<<" ";
for(i=n; i>=n-m+1; i--)
fout<<i<<" ";
return 0;
}
else
if(k>((m-1)*m)/2)
{ int v[nmax],ct=0;
for(i=1; i<=n-m-1; i++)
v[++ct]=i;
for(i=n; i>=n-m; i--)
v[++ct]=i;
int poz1,poz2;
for(i=1; i<=n; i++)
if(v[i]==n) {poz1=i; break;}
for(i=1; i<=n; i++)
if(v[i]==(n-((m+1)*m/2-k)))
{poz2=i; break;}
for(i=poz2; i>=poz1+1; i--)
swap(v[i],v[i-1]);
for(i=1; i<=n;i++) fout<<v[i]<<" ";
}
return 0;
}