Cod sursa(job #347573)

Utilizator freak93Adrian Budau freak93 Data 12 septembrie 2009 19:24:28
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<fstream>

using namespace std;

const char iname[]="nrcuv.in";
const char oname[]="nrcuv.out";
const int maxl=200;
const int maxn=1005;
const int mod=104659;

ifstream f(iname);
ofstream g(oname);

int n,m,i,j,k;

char x,y;

int nb[maxl][maxl],a[maxn][maxl];

int main()
{
    freopen(iname,"r",stdin);
    freopen(oname,"w",stdout);

    f>>n>>m;
    for(i=1;i<=m;++i)
    {
        f>>x>>y;
        nb[x][y]=nb[y][x]=1;
    }

    for(i='a';i<='z';++i)
        a[1][i]=1;

    for(i=2;i<=n;++i)
        for(j='a';j<='z';++j)
            for(k='a';k<='z';++k)
                if(nb[j][k]==0&&nb[k][j]==0)
                {
                    a[i][j]+=a[i-1][k];
                    if(a[i][j]>mod)
                        a[i][j]-=mod;
                }

    for(i='b';i<='z';++i)
        a[n]['a']+=a[n][i];

    g<<a[n]['a']%mod;

    f.close();
    g.close();

    return 0;
}