Submission #223205

#TimeUsernameProblemLanguageResultExecution timeMemory
223205oolimryTrener (COCI20_trener)C++14
22 / 110
86 ms2168 KiB
#include <bits/stdc++.h> using namespace std; long long mod = 1000000007; inline long long add(long long a, long long b){ a += b; if(a >= mod) a -= mod; return a; } unordered_map<string, long long> m; unordered_map<string, long long> mm; void prop(string s, long long x){ //cout << s << " " << x << "\n"; if(x == 0) return; for(char c = 'a';c <= 'z';c++){ //cout << s+c << " " << c+s << "\n"; mm[s+c] += x; if(s + c != c + s) mm[c+s] += x; while(mm[c+s] >= mod) mm[c+s] -= mod; } } int main(){ //freopen("i.txt","r",stdin); ios_base::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; if(n == 1){ cout << k; return 0; } for(int j = 0;j < k;j++){ string s; cin >> s; prop(s, 1); } for(int i = 2;i <= n-1;i++){ swap(m, mm); mm.clear(); for(int j = 0;j < k;j++){ string s; cin >> s; prop(s, m[s]); } } long long ans = 0; for(int j = 0;j < k;j++){ string s; cin >> s; ans = add(ans, mm[s]); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...