Cod sursa(job #1024430)

Utilizator LiquironIvan Liviu-Marian Liquiron Data 8 noiembrie 2013 18:12:13
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
 
int n,m;
char x[2000];
int valid(int );
FILE *f=fopen("nrcuv.in","r"),*q=fopen("nrcuv.out","w");
 
struct nrcuv
    {
        char a,b;
    };
nrcuv l[2000];
 
int main()
{
    int k,g,i;
    long s=0;
    char r,t;
    fscanf(f,"%d%d",&n,&m);
    for(i=1;i<=m;i++)
        fscanf(f,"%c%c%c%c",&r,&l[i].a,&t,&l[i].b);
    k=1;
    x[k]='`';
    while(k>0)
    {
        g=0;
        while((g==0) && (x[k]<'z'))
            {
                x[k]++;
                if(valid(k))
                    g=1;
            }
        if(g==1)
            if(k==n)
                s++;
            else
            {
                k++;
                x[k]='`';
            }
        else
            k--;
    }
    fprintf(q,"%ld",s);
}
 
int valid(int k)
{
    int ok=1,i;
    for(i=1;i<=m;i++)
        if(((x[k]==l[i].b)&&(x[k-1]==l[i].a))||((x[k]==l[i].a)&&(x[k-1]==l[i].b)))
            ok=0;
    return ok;
}