Pagini recente » Cod sursa (job #2098580) | Cod sursa (job #806933) | Cod sursa (job #2868191) | Cod sursa (job #393816) | Cod sursa (job #2595635)
#include <bits/stdc++.h>
#define dim 100005
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long n,k,p,i,put;
bitset<dim> fr;
long long caut(long long k){
/// n pt suma gauss <=k
long long st=1,dr=104,mid;
while(st<=dr){
mid=(dr-st)/2+st;
if(mid*(mid+1)/2>k)
dr=mid-1;
else st=mid+1;
}
return dr;
}
int main()
{
fin>>n>>k;
p=caut(k); /// ultimele p pozitii descrescatoare
put=p*(p+1)/2;
k-=put;
/// mai sunt k pozitii;
for(i=1;i<=n-p-2;i++)
fout<<i<<" ",fr[i]=1;
fout<<n-p-1+k<<" ";
for(i=n;i>=1;i--)
if(i!=n-p-1+k&&i>n-p-2)
fout<<i<<" ";
}