Cod sursa(job #137667)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 17 februarie 2008 12:53:53
Problema Arbori Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 0.81 kb
#include <cstdio>

int N,M,K,cnt,viz[100],grad[100];

void back(int nod)
{
    int i,flag;
    
    viz[nod] = 1;
    flag = 1;
    
    for ( i = nod + 1;i <= N; ++i )
        if ( !viz[i] )
        {
             flag = 0;
             grad[nod]++;
             back(i);
        }
        
    if ( flag )
    {
       for ( i = 1;i <= N; ++i )
           if ( ( grad[i] + 1 ) % M != K && grad[i] )
              return ;
       ++cnt;
    }
      
    viz[nod] = 0; 
}

int main()
{int i,j;
    freopen("arbori.in","r",stdin);
    freopen("arbori.out","w",stdout);
    
    scanf("%d%d%d",&N,&M,&K);
    
    for ( i = 1; i<= N; ++i )
    {   
        for ( j = 1;j <=N;++j)
            grad[j]=viz[j]=0;
        back(i);
    }
    
    printf("%d\n",cnt);
    
    return 0;   
}