Cod sursa(job #1825424)

Utilizator horatiucheval2Horatiu Andrei Cheval horatiucheval2 Data 9 decembrie 2016 09:38:33
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#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;
}