Cod sursa(job #2753912)

Utilizator MihaiLazar26Lazar Mihai MihaiLazar26 Data 24 mai 2021 18:22:20
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#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


}