Submission #1306705

#TimeUsernameProblemLanguageResultExecution timeMemory
1306705nguyenkhangninh99Trener (COCI20_trener)C++20
110 / 110
88 ms7196 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 1e9 + 7; signed main(){ int n, k; cin >> n >> k; vector<vector <int>> dp(n + 1, vector<int>(k + 1)); vector<vector<string>> inp(n + 1, vector<string>(k + 1)); for(int i = 1;i <= n;i++){ for(int j = 1;j <= k;j++) cin >> inp[i][j]; } for(int i = 1;i <= k;i++) dp[1][i] = 1; for(int i = 2;i <= n;i++){ map <string, int> cnt; for(int j = 1;j <= k;j++){ cnt[inp[i - 1][j]] += dp[i - 1][j]; cnt[inp[i - 1][j]] %= mod; } for(int j = 1;j <= k;j++){ string a = inp[i][j].substr(0, i - 1); string b = inp[i][j].substr(1, i - 1); if(a != b) dp[i][j] = (cnt[a] + cnt[b]) % mod; else dp[i][j] = cnt[a]; } } int ans = 0; for(int i = 1;i <= k;i++) (ans += dp[n][i]) %= mod; cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...