Cod sursa(job #2571242)

Utilizator Horea_Mihai_SilaghiHorea Mihai Silaghi Horea_Mihai_Silaghi Data 4 martie 2020 21:52:44
Problema Lista lui Andrei Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <bits/stdc++.h>
#define mod 104659
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int n,m;
bool v[28][28];
unsigned long long dp1[28],dp2[28],sum=0;
int main()
{
    int i,j,x,y;
    char cx,cy;
    in>>n>>m;
    for(i=1;i<=m;i++)
    {
        in>>cx>>cy;
        x=cx-'a'+1;
        y=cy-'a'+1;
        v[x][y]=1;
        v[y][x]=1;
    }
    /*for(i=1;i<=26;i++)
    {
        for(j=1;j<=26;j++)
            cout<<v[i][j]<<" ";
        cout<<endl;
    }*/
    for(i=1;i<=26;i++)
        dp1[i]=1;
    if(n==1)
    {
        cout<<26;
        return 0;
    }
    for(i=2;i<=n;i++)
    {
        for(j=1;j<=26;j++)
        {
            dp2[j]=0;
            for(int k=1;k<=26;k++)
                if(!v[j][k])
                    dp2[j]=(dp1[k]+dp2[j])%mod;
            if(i==n)
                sum=(sum+dp2[j])%mod;
        }
        for(j=1;j<=26;j++)
            dp1[j]=dp2[j];
    }
    out<<sum%mod;
    return 0;
}