Cod sursa(job #2110525)

Utilizator LauraNaduLaura Nadu LauraNadu Data 20 ianuarie 2018 19:54:53
Problema Lista lui Andrei Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include<fstream>
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
int n, sol, m, viz[30][30], fr[30], nr[1008][30];
char a, b;
int main()
{
    f>>n>>m;
    for(int i=1;i<=m;i++)
    {
        f>>a>>b;
        if(viz[a-'a'][a-'a']==0)
        {
           if(a==b)
                fr[a-'a']++;
            else
            {
                fr[a-'a']++;
                fr[b-'a']++;
            }
        }
        viz[a-'a'][b-'a']=viz[b-'a'][a-'a']=1;
    }
    /*sol=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<26;j++)
            sol=(sol*(26-fr[j]))%104659;
    }*/
    for(int k=1;k<=n;k++)
    {
        if(k==1)
            for(int i=0;i<26;i++)
                nr[1][i]=1;
        for(int i=0;i<26;i++)
        {
            for(int j=0;j<26;j++)
                if(viz[i][j]==0)
                {
                    nr[k][i]+=nr[k-1][j];
                    nr[k][i]%=104659;
                }
            if(k==n)
                sol+=nr[n][i];
        }
    }
    /*for(int i=1;i<=n;i++)
    {
        for(int j=0;j<26;j++)
            g<<nr[i][j]<<" ";
        g<<"\n";
    }*/
    g<<sol;
    return 0;
}