Cod sursa(job #703077)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 2 martie 2012 10:47:35
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#define N 1010
#define M 104659
using namespace std;

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

bool fol[27][27];
int cat[N][27],n,i,j,m,k;
char a,b;

int main() {
    f >> n >> m;
    for (k=1;k<=m;k++) {
        f >> a >> b;
        fol[a-96][b-96]=fol[b-96][a-96]=1;
    }
    for (i=1;i<=n;i++)
        for (j=1;j<=26;j++) {
            if (i==1) {cat[i][j]=1;continue;}
            for (k=1;k<=26;k++)
                if (!fol[j][k])
                    cat[i][j]=(cat[i][j]+cat[i-1][k])%M;
        }
    for (j=2;j<=26;j++)
        cat[n][1]=(cat[n][1]+cat[n][j])%M;
    g << cat[n][1] << '\n';
    f.close();g.close();
    return 0;
}