Cod sursa(job #2107828)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 17 ianuarie 2018 18:52:34
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include <cstdio>
#include <cassert>
using namespace std;

int main() {
    assert(freopen("farfurii.in", "r", stdin));
    assert(freopen("farfurii.out", "w", stdout));

    long long N, K;
    cin >> N >> K;

    long long S = 1;
    while (S * (S - 1) / 2 < K)
        ++S;

    long long diff = S * (S - 1) / 2 - K;
    long long swap_value = N - diff;

    S = N - S;
    for (int i = 1; i <= S; ++i)
        printf("%d ", i);
    printf("%d ", swap_value);
    for (int i = N; i > S; --i)
        if (i != swap_value)
            printf("%d ", i);
    printf("\n");

    return 0;
}