Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2078456) | Cod sursa (job #3150023) | Cod sursa (job #2044187)
#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)
{
fout<<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=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 h=N-i+1;h<=N;++h)
fout<<Sol[h]<<" ";
fout<<"\n";
return 0;
}