Cod sursa(job #1825420)

Utilizator horatiucheval2Horatiu Andrei Cheval horatiucheval2 Data 9 decembrie 2016 09:35:09
Problema Farfurii Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;

int bsearch(int st, int dr, int k){
    int 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");

    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;
}