Pagini recente » Cod sursa (job #338071) | Cod sursa (job #125749) | Cod sursa (job #426519) | Cod sursa (job #3284047) | Cod sursa (job #2972854)
#include <iostream>
using namespace std;
FILE *in = fopen("farfurii.in", "r"), *out = fopen("farfurii.out", "w");
int N, t, vmax;
bool tset = false;
unsigned long long K, cap, cap2;
int main()
{
fscanf(in, "%d %lld", &N, &K);
vmax = N;
for (int i = 1; i <= N; ++i){
cap = (N - i)*(N - i - 1) / 2;
if (cap > K)
fprintf(out, "%d ", i);
else {
cap2 = (N - i + 1)*(N - i) / 2;
if (cap2 == K){
K -= N - i;
fprintf(out, "%d ", vmax);
if (tset && vmax - 1 == t)
vmax -= 2;
else
--vmax;
}
else {
t = i + K - cap;
K -= t - i;
tset = true;
fprintf(out, "%d ", t);
}
}
}
return 0;
}