Cod sursa(job #2401826)

Utilizator jitaruandreiJitaru Andrei Catalin jitaruandrei Data 10 aprilie 2019 09:18:45
Problema Farfurii Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long long s[100001], v[100001], grad, k, ok;

int valid(int k)
{
    for(int i=1;i<k;i++)
        if(s[i]==s[k])
            return 0;
    return 1;
}

int main()
{
    unsigned long long n , grd;
    fin>>n;fin>>grd;
    for(int i=1;i<=n;i++)
        v[i]=i;
    k=1;
    s[1]=0;
    while(k>=1)
    {
        ok=0;
        while(!ok&&s[k]+1<=n)
        {
            s[k]++;
            ok=valid(k);
        }
        if(ok==1)
            if(k==n)
            {
                grad=0;
                for(int i=1;i<n;i++){
                    for(int j=i+1;j<=n;j++){
                        if(s[i]>s[j])grad++;
                    }
                }
                if(grad==grd){
                    for(int i=1;i<=n;i++)
                        fout<<s[i]<<" ";
                    return 0;
                }
            }
            else
            {
                k++;
                s[k]=0;
            }
        else
            k--;
        }
    }