Pagini recente » Cod sursa (job #1035163) | Cod sursa (job #2054958) | Cod sursa (job #1874269) | Cod sursa (job #1603589) | Cod sursa (job #2753912)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int main()
{
long long n, k, nr = 1, x;
fin>>n>>k;
x = nr * (nr - 1) / 2;
while(x < k) ++nr, x = nr * (nr - 1) / 2; // x = numarul de inversiuni
for(int i = 1; i <= n - nr; ++i) fout<<i<<' '; //afisez toate numerele <= n - nr in ordine crescatoare
fout<<n - x + k<<' '; //afisez numarul care nu respecta ordinea (daca k se poate scrie n*(n-1)/2 atunci si acesta respecta ordinea)
for(int i = n; i > n - nr; --i) if(i != n - x + k) fout<<i<<' '; //afisez restul de numere in ordine descrescatoare
}