Pagini recente » Cod sursa (job #1528517) | Cod sursa (job #1412763) | Cod sursa (job #1838028) | Monitorul de evaluare | Cod sursa (job #2044139)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
const int NMax=100005;
int Sol[NMax],N,K,S;
int main()
{
fin>>N>>K;
int i=1;
while(S<K)
{
S=S+i;
++i;
}
for(int j=1;j<=N-i;++j)
{
Sol[j]=j;
}
for(int j=N-i+1;j<=N;++j)
{
Sol[j]=2*N-j+1-i;
}
int dif=S-K;
int j=N-i+1;
while(dif>=i)
{
int x=Sol[N];
for(int l=j+N;l>j;--l)
{
Sol[l]=Sol[l-1];
}
Sol[j]=x;
++j;
dif=dif-i;
}
int x=Sol[j+dif];
for(int l=j+dif;l>j;--l)
{
Sol[l]=Sol[l-1];
}
Sol[j]=x;
for(int i=1;i<=N;++i)
fout<<Sol[i]<<" ";
fout<<"\n";
return 0;
}