Pagini recente » Cod sursa (job #1758870) | Cod sursa (job #1507000) | Cod sursa (job #58992) | Cod sursa (job #1053724) | Cod sursa (job #2755249)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int n, k;
int main()
{
int i, ninv, p;
fin >> n >> k;
// ninv = n ul pentru care folosesc toate numerele ca sa fac k inversiuni
ninv = 1;
while(ninv * (ninv - 1) / 2 < k)
ninv++;
// primele numere pana la pozitia care nu interfereaza cu
// cele ninv inversiuni le afisez crescator
for(i = 1; i <= n - ninv; i++)
fout << i << " ";
// p = numarul de inversiuni de care trebuie sa scap
p = ninv * (ninv - 1) / 2 - k;
// daca il mut pe (n - p) in stanga (in secventa ramasa)
// scap de exact p inversiuni
fout<< n - p <<" ";
// le afisez in continuare descrescator pe celelalte
for(i = n; i > n - ninv; i--)
if(i != n - p)
fout << i << " ";
fin.close();
fout.close();
return 0;
}