Cod sursa(job #1307581)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 2 ianuarie 2015 16:29:27
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;

ifstream f("nrcuv.in");
ofstream g("nrcuv.out");

const int mod=104659;
int a[1005][30],n,m,i,j,k,sum;
bool imp[30][30];
char x,y;

int main()
{
    f>>n>>m; f.get();
    for (i=1;i<=m;i++)
    {
        f.get(x); f.get(); f.get(y); f.get();
        imp[x-'a'+1][y-'a'+1]=1;
        imp[y-'a'+1][x-'a'+1]=1;
    }

    for (i=1;i<=26;i++)
      a[1][i]=1;
    for (i=2;i<=n;i++)
     for (j=1;j<=26;j++)
      for (k=1;k<=26;k++)
       if (!imp[k][j])
        {
            a[i][j]+=a[i-1][k];
            if (a[i][j]>mod) a[i][j]-=mod;
        }

    for (i=1;i<=26;i++)
    {
        sum+=a[n][i];
        if (sum>mod) sum-=mod;
    }
    g<<sum;
    f.close();
    g.close();
    return 0;
}