Pagini recente » Cod sursa (job #1167589) | Cod sursa (job #844940) | Monitorul de evaluare | Cod sursa (job #2016458) | Cod sursa (job #1184089)
#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;
}