제출 #1245626

#제출 시각아이디문제언어결과실행 시간메모리
1245626abdelhakimCubeword (CEOI19_cubeword)C++20
0 / 100
1196 ms20828 KiB
#include <bits/stdc++.h>
#define ll long long
#define inf (ll)(1e15) 
#define mod (ll)998244353
#define dbg(x) cerr <<#x << ' ' << x <<endl;
using namespace std;

void printvec(vector<ll>& v)
{
  for (auto &&i : v)
  {
    cout <<i<<' ';
  }
  cout << endl;
}
int mp[6][6];
ll anss(ll i, ll n, string cur)
{
  if(i==8)
  {
    ll ans=1;
    for (int j=0;j<7;j+=2)
    {
      ans*=mp[cur[j]-'a'][cur[j+1]-'a'];
      ans%=mod;
    }
    for (int j=0;j<2;j++)
    {
      ans*=mp[cur[j]-'a'][cur[j+2]-'a'];
      ans%=mod;
    }
    for (int j=4;j<6;j++)
    {
      ans*=mp[cur[j]-'a'][cur[j+2]-'a'];

      ans%=mod;
    }
    for (int j=0;j<4;j++)
    {
      ans*=mp[cur[j]-'a'][cur[j+4]-'a'];
      
    }
    return ans;
  }
  ll sm=0;
  for (char cr='a';cr<='f';cr++)
  {
    sm+=anss(i+1,n,cur+cr);
  
  }
  sm%=mod;
  return sm;
}

int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  ll n;
  cin>>n;
  vector<string> s(n);
  ll sz=0;
  for (int i=0;i<n;i++)
  {
    cin>>s[i];
    sz=max(sz,(ll)s[i].size());
  }
  vector<vector<string>> szs(11);
  map<string,bool> vis;
  // vector<string> s2;
  for (int i=0;i<n;i++)
  {
    if(vis[s[i]])continue;
    string rev=s[i];
    reverse(rev.begin(),rev.end());
    vis[rev]=1;
    vis[s[i]]=1;
    szs[s[i].size()].push_back(s[i]);
  }
  ll ans=0;
  for (int i=3;i<=10;i++)
  {
    if(szs[i].empty())continue;
    for (int i=0;i<6;i++)
    {
      for (int j=0;j<6;j++) mp[i][j]=0;
    }
    for (auto &&e : szs[i])
    {
      string rev=e;
      reverse(rev.begin(),rev.end());
      mp[e[0]-'a'][e.back()-'a']++;
      if(rev!=e)mp[e.back()-'a'][e[0]-'a']++;
      ans+=anss(0,n,"");
    }
    ans%=mod;
  }
  cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...