Pagini recente » Cod sursa (job #548899) | Cod sursa (job #771390) | Cod sursa (job #2671274) | Cod sursa (job #1058568) | Cod sursa (job #1825418)
#include <iostream>
#include <fstream>
using namespace std;
int bsearch(int st, int dr, int k){
int m = (st + dr) / 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");
int n, k;
fin >> n >> k;
int p = bsearch(1, n, k);
for(int i = 1; i <= n - p; i++){
fout << i << " ";
}
fout << k - (p - 1) * (p - 2) / 2 + 1 + (n - p) << " ";
for(int 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;
}