Cod sursa(job #2454597)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 9 septembrie 2019 14:45:56
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

ifstream fin ("farfurii.in");
ofstream fout ("farfurii.out");

int n,i,sol;
long long k;
int main (){


    fin>>n>>k;

    int st = 0, dr = n;
    while (st <= dr){
        int mid = (st+dr)>>1;
        if (1LL*(n-mid)*(n-mid-1)/2 >= k){
            sol = mid;
            st = mid+1;
        } else dr = mid-1;
    }

    long long inv = 1LL*(n-sol)*(n-sol-1)/2;
    /// inv - (n-val) = k
    int val = k+n-inv;
    for (i=1;i<=sol;i++)
        fout<<i<<" ";
    if (val)
        fout<<val<<" ";
    for (i=n;i>sol;i--)
        if (i != val)
            fout<<i<<" ";

    return 0;
}