Cod sursa(job #2542601)

Utilizator YouDontNeedMyNameJurcut Paul YouDontNeedMyName Data 10 februarie 2020 11:50:50
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>
#define nmax 15005
#define ll long long
using namespace std;
ifstream in("farfurii.in");
ofstream out("farfurii.out");
ll n,k;
void read(){
    in >> n >> k;
}
ll fnd_n(){
    ll x = sqrt(2*k);
    while(x*(x-1)/2<=k) x++;
    while(x*(x-1)/2>k) x--;
    return x;
}
void solve(){
    ll nr = fnd_n();
    ll r = k-nr*(nr-1)/2;
    if(r==0){
        for(ll i=1; i<=n-nr; i++){
            out<< i << ' ';
        }
        for(ll i=n-nr+1; i<=n; i++){
            out << n-i+n-nr+1 << ' ';
        }
    }
    else{
        for(ll i=1; i<n-nr; i++){
            out << i << ' ';
        }
        out << n-nr+r << ' ';
        for(ll i=0; i<nr-r; i++){
            out << n-i << ' ';
        }
        for(ll i=r-1; i>=0; i--){
            out << n-nr+i << ' ';
        }
    }
}
int main(){
    read();
    solve();
}