Cod sursa(job #1618829)

Utilizator EpictetStamatin Cristian Epictet Data 28 februarie 2016 00:31:50
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

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

long long k;
int n, sol1, sol2, sol3, poz;

int main()
{
    fin >> n >> k;
    for (long long i = 1; i <= n; i ++)
    {
        if ((i * (i - 1) / 2) > k)
        {
            sol1 = i - 1;
            break;
        }
    }

    poz = n - sol1 + 1;

    for (int i = 1; i <= poz - 2; i ++) fout << i << ' ';

    sol2 = k - (sol1 * (sol1 - 1) / 2) + (poz - 1);

    fout << sol2 << ' ' << n << ' ';

    int sol3 = n - 1;
    for (int i = poz + 1; i <= n; i ++)
    {
        if (sol3 == sol2) sol3 --;
        fout << sol3 << ' ';
        sol3 --;
    }

    fout << '\n';
    fout.close();
    return 0;
}