Submission #238747

#TimeUsernameProblemLanguageResultExecution timeMemory
238747SalitoTrener (COCI20_trener)C++14
0 / 110
15 ms1536 KiB
#include<bits/stdc++.h>
using namespace std;
long long const mod = 1e9+7;

unordered_map<string,int> h;
long long dp[56][1505];
int n,k;
int main()
{
    int i,j;
    string s;

	cin>>n>>k;

	for(i=1;i<=k;i++)
    {
        cin>>s;
        dp[0][i] = 1;
        h[s] = i;
    }

    for(i=1;i<n;i++)
        for(j=1;j<=k;j++)
        {
            cin>>s;
            string l,r;
            l = s.substr(0,s.size()-1);
            r = s.substr(1,s.size()-1);
            if(h[l])
                dp[i][j]=(dp[i][j]+dp[i-1][h[l]])%mod;
            if(h[r])
                dp[i][j]=(dp[i][j]+dp[i-1][h[r]])%mod;

            h[s] = j;
        }

    long long ans = 0;
    for(i=1;i<=k;i++)
        ans=(ans+dp[n-1][i])%mod;

    cout<<ans<<endl;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...