Cod sursa(job #1426754)

Utilizator mayweather_vs_pacquiaoRadu Nicolae mayweather_vs_pacquiao Data 30 aprilie 2015 16:21:53
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';
    fout.close();
    fin.close();
    return 0;
}