Pagini recente » Cod sursa (job #3193714) | Cod sursa (job #1857259) | Cod sursa (job #2486731) | Cod sursa (job #2475764) | Cod sursa (job #2751941)
#include <iostream>
#include <fstream>
#include <cmath>
std::ifstream f("farfurii.in");
std::ofstream g("farfurii.out");
int main()
{
int n, k;
f >> n >> k;
const int descrescatoare = (1 + sqrt(1 + 8 * k))/2 + 1;
const int inversiuni_aferente = descrescatoare * (descrescatoare - 1) / 2;
const int inversiuni_extra =inversiuni_aferente - k;
const int crescatoare = n - descrescatoare;
const int salvatul = n - inversiuni_extra;
if (salvatul == 0)
{
int i;
for (i = n; i >= 1; i--)
g << i << " ";
return 0;
}
int i;
for (i = 1; i <= crescatoare; i++)
g << i << " ";
g << salvatul << " ";
for (n = n; n > salvatul; n--)
g << n << " ";
n--;
for (n = n; n >= i; n--)
g << n << " ";
return 0;
}