Cod sursa(job #1582591)

Utilizator sucureiSucureiRobert sucurei Data 28 ianuarie 2016 09:36:02
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
using namespace std;

typedef long long ll;
const int MAX_N = 100001;

inline ll max_inv(int n) {
    return ((ll)(n - 1) * n) / 2;
}

bool used[MAX_N];

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

    int N;
    ll K;

    fin >> N >> K;
    int current = 0, idx = 1, old;
    while (idx <= N) {
        ll inv = max_inv(N - idx);
        current++;
        old = current;
        while (inv + current - old < K) {
            current++;
        }
        used[current] = 1;
        fout << current << ' ';
        if (inv + current - old == K)
            break;
        ++idx;
    }
    for (int i = N; i >= 1; --i)
        if (!used[i])
            fout << i << ' ';
    fout << '\n';
    return 0;
}