Cod sursa(job #1024170)

Utilizator turbowin120Amarandei-Stanescu Alexandru turbowin120 Data 8 noiembrie 2013 12:37:01
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;

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

const int M=104659;
int v[1001][27],K=0;
bool icp[26][26];

long long par(long long suma)
{
    long long suma2=0;
    for(int i=0; i<26; i++)
    {
        for(int j=0; j<26; j++)
            if(icp[i][j]==0)
                v[K][i]=(v[K][i]+v[K-1][j])%M;
        suma2=(v[K][i]+suma2)%M;
    }
    return suma2;
}



int main()
{
    int n,m,i,j;
    char a,b;
    in>>n>>m;
    if(n==1)
    {
        out<<"26";
        return 0;
    }

    for(i=1; i<=m; i++)
    {
        in>>a>>b;
        a=a-97;
        b=b-97;
        icp[a][b]=icp[b][a]=1;
    }

    long long suma=0;


    for(i=0;i<26;i++)
    {
        for(j=0;j<26;j++)
        if(icp[i][j]==0)
        v[2][i]++;

        suma=(v[2][i]+suma)%M;

    }

    K=3;
    for(i=2;i<=n-1;i++)
    {
        suma=par(suma);

        K++;
    }
    out<<suma;






    return 0;
}