Submission #1273429

#TimeUsernameProblemLanguageResultExecution timeMemory
1273429cow123Cubeword (CEOI19_cubeword)C++20
84 / 100
162 ms16496 KiB
#include <bits/stdc++.h> #define FOR(i,a,b) for(int i = a; i < b;++i) #define pb push_back #define int long long using namespace std; const int M = 998244353; int32_t main(){ cin.tie(0); ios_base::sync_with_stdio(0); int n; cin>>n; set<string> S[11]; FOR(i,0,n){ string W; cin>>W; S[W.size()].insert(W); reverse(W.begin(),W.end()); S[W.size()].insert(W); } int suma = 0; FOR(i,3,11){ int dp[37][37][37]; int zlicz[37][37]; FOR(j,0,36){ FOR(k,0,36){ FOR(l,0,36){ dp[j][k][l] = zlicz[j][k] = 0; } } } if(S[i].size() == 0){continue;} for(auto y : S[i]){ int x1 = y[0] - 'a'; int y1 = y[i - 1] - 'a'; if(x1 < 0){x1+=48;} if(y1 < 0){y1+=48;} zlicz[x1][y1]++; } FOR(j,0,33){ FOR(k,0,33){ FOR(l,0,33){ FOR(m,0,33){ dp[j][k][l] = (dp[j][k][l] + zlicz[j][m] * zlicz[k][m] * zlicz[l][m]) % M; } } } } FOR(j,0,33){ FOR(k,0,33){ FOR(l,0,33){ FOR(m,0,33){ suma = (suma + (((((dp[k][l][m]) * dp[j][l][m]) % M) * dp[j][k][m]) % M) * dp[j][k][l]) % M; } } } } } cout<<suma; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...