제출 #1303483

#제출 시각아이디문제언어결과실행 시간메모리
1303483orgiloogiiTrener (COCI20_trener)C++20
22 / 110
5 ms840 KiB
#include <bits/stdc++.h> #define int long long using namespace std; signed main() { int n, k; cin >> n >> k; vector <vector <int>> dp(n + 1, vector <int>(k + 1, 0)); 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]; } 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]; else dp[i][j] = cnt[a]; } } int ans = 0; for (int i = 1;i <= k;i++) { ans += dp[n][i]; } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...