Cod sursa(job #2901818)

Utilizator DafinaTrufasTrufas Dafina DafinaTrufas Data 14 mai 2022 14:48:31
Problema Farfurii Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;

int st[20], n, k, i, nrp = 0;
long long l;

ifstream f("farfurii.in");
ofstream g("farfurii.out");

void tipar()
{
    for (i = 1; i <= n; i++)
        g << st[i] << ' ';
    g << '\n';
}
int valid (int k)
{
    for (i = 1; i < k; i++)
        if (st[i] == st[k]) return 0;
    return 1;
}
void backrec (int k)
{
    if (k - 1 == n)
    {
        nrp = 0;
        for(i = 1; i <= n; i++)
            for(int j = i + 1; j <= n; j++)
                if(st[i] > st[j])
                    nrp++;
        if(nrp == l)
        {
            tipar ();
            exit(0);
        }
    }
    else for (int i = 1; i <= n; i++)
            {
                st[k] = i;
                if (valid (k))
                    backrec (k + 1);
            }
}
int main()
{
f >> n >> l;
backrec (1);
return 0;
}