Submission #734701

#TimeUsernameProblemLanguageResultExecution timeMemory
734701MisterReaperTrener (COCI20_trener)C++17
0 / 110
10 ms1708 KiB
// author: MisterReaper (Ahmet Alp Orakci) #include <bits/stdc++.h> using namespace std; #define int long long const int MOD = 1e9 + 7; #define ONLINE_JUDGE #ifndef ONLINE_JUDGE #include "debug.h" #define OPEN freopen(".in", "r", stdin); freopen(".out", "w", stdout); #define TIME cerr << "\n" << fixed << setprecision(2) << 1000.0 * clock() / CLOCKS_PER_SEC << " milliseconds "; #else #define debug(...) void(23) #define OPEN void(0000) #define TIME void(232323233) #endif void solve() { int n, k; cin >> n >> k; vector <vector <string>> arr(n +1, vector <string> (k +1)); for(int i = 1; i <= n; i++) { for(int j = 1; j <= k; j++) cin >> arr[i][j]; } map <string, int> mp; for(int i = 1; i <= k; i++) mp[arr[1][i]]++; for(int i = 2; i <= n; i++) { for(int j = 1; j <= k; j++) { string f, s = arr[i][j]; for(int l = 2; l <= i; l++) f += arr[i][j][l -1]; s.pop_back(); mp[arr[i][j]] += mp[f] + (f != s ? mp[s] : 0); mp[arr[i][j]] %= MOD; debug(arr[i][j], mp[arr[i][j]]); } } int ans = 0; for(int i = 1; i <= k; i++) { ans += mp[arr[n][i]]; ans %= MOD; } cout << ans << "\n"; return; } int32_t main() { OPEN; ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t = 1; //cin >> t; while(t--) { solve(); } TIME; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...