Cod sursa(job #1536328)

Utilizator AdrianVrAdrian Stefan Vramulet AdrianVr Data 25 noiembrie 2015 23:03:22
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int st[20],k,n,v[30],p;
int valid (int k)
{
    if(st[k]<=st[k-1]&&k>1)
        return 0;
    for(int i=1; i<=k-1; i++)
        if(st[k]==st[i]) return 0;
    return 1;
}
int solutie(int k)
{
    return (k==p);

}
void afis(int k)
{
    for(int i=1; i<=k; i++)
        g<<v[st[i]]<<" ";
    g<<'\n';
}
void bkt()
{
    k=1;
    st[1]=0;
    while(k>0)
    {
        if(st[k]<n)
        {
            st[k]++;
            if(valid(k))
                if(solutie(k))
                    afis(k);
                else
                {
                    k++;
                    st[k]=0;
                }
        }
        else
            k--;
    }
}
int main()
{
    f>>n>>p;
    for(int i=1; i<=n; i++)
        v[i]=i;
    bkt();
    return 0;
}