#include <bits/stdc++.h>
#define int long long int
#define ff first
#define ss second
const int MOD = 998244353;
const int N = 2e5 + 5;
using namespace std;
map<string, int> mp;
void solve(){
int n, k;
cin >> n >> k;
string s[n*k];
for(int i = 0; i < n*k; i++) cin >> s[i];
for(int i = 0; i < k; i++) mp[s[i]]++;
for(int i = k; i < n*k-k; i++){
string s1 = s[i].substr(0, s[i].size()-1);
string s2 = s[i].substr(1, s[i].size()-1);
if(s1 != s2){
mp[s[i]] += mp[s1] + mp[s2];
}
else{
mp[s[i]] += mp[s1];
}
// cout << s[i] << " " << mp[s[i]] << endl;
}
int ans = 0;
for(int i = n*k-k; i < n*k; i++){
string s1 = s[i].substr(0, s[i].size()-1);
string s2 = s[i].substr(1, s[i].size()-1);
if(s1 != s2) ans += mp[s1] + mp[s2];
else ans += mp[s1];
}
cout << ans << endl;
}
int32_t main(){
int t;
// cin >> t;
t = 1;
while(t--) solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |