Pagini recente » Cod sursa (job #1201066) | Cod sursa (job #193713) | Cod sursa (job #2753684) | Cod sursa (job #43876) | Cod sursa (job #1681007)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("farfurii.in");
ofstream out("farfurii.out");
long long n, k, s;
int v[100005];
bool b[100005];
int main()
{
in >> n >> k;
int m = 1;
for( int i = 1; i <= n - 1; i ++ ){
s = (n - i)*(n - i - 1)/2;
if ( k <= s ){
while( b[m] )
m++;
v[i] = m ++;
b[m-1] = true;
}
else{
int p = m;
int nr = k - s;
k = k - nr;
while( nr )
{
p ++ ;
if( !b[p] )
nr--;
}
b[p] = true;
v[i] = p;
}
}
while( b[m] )
m++;
v[n] = m;
for( int i = 1; i <= n; i ++ ){
out << v[i] << " ";
}
return 0;
}