Cod sursa(job #3316154)

Utilizator TeodoRazvanStancu Teodor-Razvan TeodoRazvan Data 17 octombrie 2025 16:44:37
Problema Lista lui Andrei Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#include <fstream>

using namespace std;

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

int main(){
    int n,m;
    char a,b;
    fin>>n>>m;
    set<pair<int,int>>s;
    for(int i=0;i<m;i++){
        fin>>a>>b;
        s.insert({int(a)-96,int(b)-96});
        s.insert({int(b)-96,int(a)-96});
    }
    int dp[1020][30];
    for(int i=1;i<=26;i++)dp[1][i]=1;
    int sum=26;
    for(int i=2;i<=n;i++){
        for(int j=1;j<=26;j++){
            dp[i][j]=sum;
            for(auto x:s){
                if(x.first==j){
                    dp[i][j]-=dp[i-1][x.second];
                }
            }
        }
        sum=0;
        for(int j=1;j<=26;j++){
            sum+=dp[i][j];
        }
    }
    fout<<sum;
    return 0;
}