Pagini recente » Cod sursa (job #1818645) | Cod sursa (job #2077311) | Cod sursa (job #2801299) | Cod sursa (job #611732) | Cod sursa (job #1825424)
#include <iostream>
#include <fstream>
using namespace std;
uint64_t bsearch(uint64_t st, uint64_t dr, uint64_t k){
uint64_t m = st + (dr - st) / 2;
if(st == dr){
return st;
}
if(m * (m - 1) / 2 < k){
return bsearch(m + 1, dr, k);
}else{
return bsearch(st, m, k);
}
}
int main(){
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
uint64_t n, k;
fin >> n >> k;
uint64_t p = bsearch(1, n, k);
for(uint64_t i = 1; i <= n - p; i++){
fout << i << " ";
}
fout << k - (p - 1) * (p - 2) / 2 + 1 + (n - p) << " ";
for(uint64_t i = n; i >= n - p + 1; i--){
if(i == k - (p - 1) * (p - 2) / 2 + 1 + (n - p)){
continue;
}
fout << i << " ";
}
fin.close();
fout.close();
return 0;
}