Cod sursa(job #1077841)

Utilizator IoannaPandele Ioana Ioanna Data 11 ianuarie 2014 18:27:21
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <cmath>

using namespace std;

int n;
long long k;

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

void solve() {
    long long f = sqrt(2 * k);
    if (f * (f + 1) <= 2 * k)
        f++;

    if (2*k == f * (f - 1)) {
        for (int i = 1; i <= n - f; i++)
            out<<i<<" ";
        for (int i = n; i >= n - f + 1; i--) {
            out<<i<<" ";
        }
        return;
    }
    for (int i = 1; i < n - f; i++)
            out<<i<<" ";
    long long change = n - (f * (f + 1) / 2 - k);
    out<<change<<" ";
    for (int i = n; i >= n - f; i--) {
        if (i != change) {
            out<<i<<" ";
        }
    }

}

int main() {
    in>>n>>k;
    solve();
    return 0;
}