Pagini recente » Cod sursa (job #3244184) | Cod sursa (job #220092) | Cod sursa (job #1560386) | Cod sursa (job #1477148) | Cod sursa (job #2751942)
#include <iostream>
#include <fstream>
#include <cmath>
std::ifstream f("farfurii.in");
std::ofstream g("farfurii.out");
int main()
{
long n, k;
f >> n >> k;
const long descrescatoare = (1 + sqrt(1 + 8 * k))/2 + 1;
const long inversiuni_extra = descrescatoare * (descrescatoare - 1) / 2 - k;
const long 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 <= n - descrescatoare ; i++) // afis cele crescatoare
g << i << " ";
g << salvatul << " "; // afis salvatul
for (n = n; n > salvatul; n--) // afis cele desc, pana la salvat
g << n << " ";
for (n = n-1; n >= i; n--) // afis cele desc, dupa salvat
g << n << " ";
return 0;
}