Pagini recente » Cod sursa (job #2450195) | Cod sursa (job #1944040) | Cod sursa (job #2647387) | Cod sursa (job #2064785) | Cod sursa (job #876607)
Cod sursa(job #876607)
#include <iostream>
#include<fstream>
using namespace std;
int n,m, ct;
char perechi1[2000], perechi2[2000], st[1001];
int valid(int p)
{
int ok, j;
ok=1;
if(p>1)
{
for(j=1; j<=m; j++)
{
if(st[p-1]==perechi1[j] && st[p]==perechi2[j] )
{
ok=0;
break;
}
if(st[p-1]==perechi2[j] && st[p]==perechi1[j])
{
ok=0;
break;
}
}
}
return ok;
}
void bktr(int p)
{
char pval;
for(pval='a'; pval<='z'; pval++)
{
st[p]=pval;
if(valid(p)==1)
{
if(p==n)
ct++;
else
bktr(p+1);
}
}
}
int main()
{
fstream in, out;
in.open("nrcuv.in", ios::in);
out.open("nrcuv.out", ios::out);
in>>n>>m;
int i;
for(i=1; i<=m; i++)
{
in>>perechi1[i]>>perechi2[i];
}
bktr(1);
out<<ct%104659;
in.close();
out.close();
}