Cod sursa(job #2505756)

Utilizator Ionut10Floristean Ioan Ionut10 Data 7 decembrie 2019 10:46:28
Problema Farfurii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
#define DimMax 100005
using namespace std;


ifstream fin("farfurii.in");
ofstream fout("farfurii.out");

int n, k;
int v[DimMax];
int numarinv;

bool descr(int a, int b)
{
    return a > b;
}
int main()
{
    fin>>n>>k;
    for(int i = 1;i <= n;i++) v[i] = i;
    int j = n;
    while(j >= 1)
    {
        swap(v[j], v[j - 1]);
        j--;
        sort(v + j + 1, v + n + 1, descr);
        numarinv = (n - j) * (n - j + 1) / 2;
        if(numarinv == k)
        {
            for(int i = 1;i <= n;i++)
                fout<<v[i]<<" ";
            return 0;
        }
        else if(numarinv + ((n - (j + 1) + 1) * (n - (j + 1) + 2) / 2) > k)
        {
            int a = n - (k - numarinv) + 1;
            swap(v[a], v[j - 1]);
            sort(v + j + 1, v + n + 1, descr);
            for(int i = 1;i <= n;i++)
                fout<<v[i]<<" ";
            return 0;
        }
    }
    return 0;
}