Cod sursa(job #1893686)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 25 februarie 2017 21:39:55
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

#define ll long long
using namespace std;

ifstream f("farfurii.in");
ofstream g("farfurii.out");

ll n,k,r,s;

int main()
{
    f >> n >> k;
    for(ll i = 1; i <= n; ++i){
        if(i * (i - 1) / 2 >= k && (i - 1) * (i - 2) / 2 < k){
            r = i;
            s = i * (i - 1) / 2;
            break;
        }
    }
    if(n == 1){
        g << 1 << ' ';
        return 0;
    }
    if(k == 0){
        for(ll i = 1; i <= n; ++i)
            g << i << ' ';
        return 0;
    }
    if(k == 1){
        for(ll i = 1; i <= n - 2; ++i)
            g << i << ' ';
        g << n << ' ' << n - 1 << '\n';
        return 0;
    }
    if(k == s){
        for(ll i = n; i >= 1; --i)
            g << i << ' ';
        return 0;
    }
    for(ll i = 1; i <= n - r; ++i)
        g << i << ' ' ;

    ll rest = s - k;

    g << n - rest << ' ';

    for(ll i = n; i >= n - r + 1; --i){
        if(i != n - rest)
            g << i << ' ';
    }
    return 0;
}