Cod sursa(job #1023885)

Utilizator TzapulPaun Victor Tzapul Data 7 noiembrie 2013 20:46:45
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 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%104659);
}

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;
}