Cod sursa(job #1527002)
| Utilizator | Data | 17 noiembrie 2015 19:22:14 | |
|---|---|---|---|
| Problema | Lista lui Andrei | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int lit[30][30];
int dp[1005][30];
int sol,n,m,i,j,k;
char a,b;
int main()
{
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>a>>b;
lit[a-'a'][b-'a']=1;
lit[b-'a'][a-'a']=1;
}
for(i=0;i<26;i++)
dp[i][1]=1;
for(i = 2; i <= n; i++)
for(j = 0; j < 26; j++)
for(k = 0; k < 26; k++)
if(!lit[j][k] && !lit[k][j])
dp[j][i] = (dp[j][i] + dp[k][i-1]) % 104659;
for(i=0;i<26;i++)
sol=(sol+dp[i][n])%104659;
fout<<sol<<"\n";
}
