Pagini recente » Cod sursa (job #1304912) | Cod sursa (job #615065) | Cod sursa (job #1645307) | Cod sursa (job #1787239) | Cod sursa (job #2404979)
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int N, Sol[100001], i, K, last;
int long long Biggest[100001];
bool Check[100001];
int main()
{
fin>>N>>K;
for(i=N-1; i>=1; --i) Biggest[i]=Biggest[i+1]+(N-i);
i=1;
while(Biggest[i+1]>=K && i<N)
{Sol[i]=i; Check[i]=true; ++i;}
Sol[i]=i+(K-Biggest[i+1]); Check[i+(K-Biggest[i+1])]=true;
++i; last=N;
for(; i<=N; ++i){
while(Check[last]==true) --last;
Sol[i]=last; Check[last--]=true;
}
for(i=1; i<=N; ++i) fout<<Sol[i]<<" ";
return 0;
}