Cod sursa(job #1184089)

Utilizator BLz0rDospra Cristian BLz0r Data 11 mai 2014 11:41:25
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
using namespace std;

FILE *f=fopen ("nrcuv.in","r");
FILE *g=fopen ("nrcuv.out","w");

int D[1005][760];
bool ap[30][30];


int main(){
	int n,m,s=0;
	char x,y;
	
	fscanf (f,"%d%d%*c",&n,&m);
	
	for (int i=1;i<=m;++i){
		fscanf (f,"%c%*c%c%*c",&x,&y);
		ap[x-'a'+1][y-'a'+1]=1;
	}
	
	for (int i=1;i<=26;++i) D[1][i]=1;
	
	for (int i=2;i<=n;++i){
		for (int j=1;j<=26;++j){
			for (int k=1;k<=26;++k){
				if (!ap[j][k]){
					D[i][k]=(D[i][k]+D[i-1][j])%104659;
				}
			}
		}
	}
	for (int i=1;i<=26;++i){
		s=(s+D[n][i])%104659;
		fprintf (g,"%d ",D[n][i]);
	}
	
	fprintf (g,"\n%d",s);
	
	return 0;
}