Cod sursa(job #2278728)

Utilizator Alex_BubBuburuzan Alexandru Alex_Bub Data 8 noiembrie 2018 15:05:24
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 100000;

long long V[NMAX + 5], N, K, X;

void Mirror(int st, int dr) {
    while(st < dr) {
        swap(V[st], V[dr]);
        st++, dr--;
    }
}

int main()
{
    fin >> N >> K;

    for(int i = 1; i <= N; i++)
        V[i] = i;

    while(X * (X - 1) / 2 < K) X++;

    X--;

    Mirror(N - X + 1, N);

    long long aux = V[N - X], l = K - X * (X - 1) / 2;

    V[N - X] = V[N - l + 1];

    for(int i = N - l + 1; i < N; i++)
        V[i] = V[i + 1];

    V[N] = aux;

    for(int i = 1; i <= N; i++)
        fout << V[i] << " ";

    fout << '\n';

    fin.close();
    fout.close();

    return 0;
}