Cod sursa(job #2409176)

Utilizator Vaida_Radu_AndreiVaida Radu Andrei Vaida_Radu_Andrei Data 18 aprilie 2019 19:03:52
Problema Lista lui Andrei Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <cstdio>
FILE* FIN=freopen("nrcuv.in","r",stdin);
FILE* FOUT=freopen("nrcuv.out","w",stdout);
using namespace std;

int ar[26][26],d[2][26],n;

void mmset(int v[],int l,int val)
{
    int i;
    for(i=0;i<l;++i)
        v[i]=val;
}
void mset(int m[26][26],int val)
{
    int i;
    for(i=0;i<26;++i)
        mmset(m[i],26,val);
}
void cit()
{
    mset(ar,1);
    int i,m;
    char x[2];
    scanf("%d%d\n",&n,&m);
    for(i=0;i<m;++i)
    {
        scanf("%c %c\n",&x[0],&x[1]);
        ar[x[0]-'a'][x[1]-'a']=0;
        ar[x[1]-'a'][x[0]-'a']=0;
    }
}
int sum(int v[],int p)
{
    int i,sol;
    for(i=0,sol=0;i<26;sol+=v[i]*ar[p][i],++i);
    return sol;
}
void diny()
{
    int i,k,j,p;
    for(i=0;i<26;++i)
        d[0][i]=1;
    for(i=1,k=1;i<n;++i,k=i%2)
    {
        for(p=0;p<26;++p)
            d[k][p]=sum(d[(k+1)%2],p);
    }
}
void af()
{
    int i,k,sol;
    for(i=0,k=(n+1)%2,sol=0;i<26;sol+=d[k][i],++i);
    printf("%d",sol);
}
int main()
{
    cit();
    diny();
    af();
    return 0;
}