Submission #914030

# Submission time Handle Problem Language Result Execution time Memory
914030 2024-01-20T19:56:15 Z CyberCow Cubeword (CEOI19_cubeword) C++17
0 / 100
1100 ms 34096 KB
#include <random>
#include <algorithm>
#include <bitset>
#include <chrono>
#include <cmath>
#include <deque>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <chrono>
#define fr first
#define sc second
#define ad push_back
using namespace std;
using ll = long long;
mt19937 rnd(348502);

const ll N = 150;
ll a[15][N][N];
vector<char> per;

ll chgl[N][N][N];

ll mod = 998244353;


void solve()
{
    int n, i, j, x, y;
    cin >> n;
    string s;
    set<string> sss;
    for (i = 0; i < n; i++)
    {
        cin >> s;
        int st = 1;
        for (j = 0; j < s.size(); j++)
        {
            if (s[j] != s[s.size() - j - 1])
                st = 0;
        }
        if (st)
        {
            if (sss.find(s) == sss.end())
                a[s.size()][s[0]][s.back()]++;
            sss.insert(s);
        }
        else
        {
            if (sss.find(s) == sss.end())
                a[s.size()][s[0]][s.back()]++;
            sss.insert(s);
            reverse(s.begin(), s.end());
            if (sss.find(s) == sss.end())
                a[s.size()][s[0]][s.back()]++;
            sss.insert(s);
        }
    }
    for (i = 'a'; i <= 'z'; i++)
    {
        per.push_back(char(i));
        per.push_back(char(i - 'a' + 'A'));
    } 
    for ( i = 0; i < 10; i++)
    {
        per.push_back(char('0' + i));
    }
    ll anss = 0;
    for (int ch = 3; ch <= 10; ch++)
    {
        for (j = 0; j < per.size(); j++)
        {
            for (int h = 0; h < per.size(); h++)
            {
                for (int hh = 0; hh < per.size(); hh++)
                {
                    ll obshi = 0;
                    for (i = 0; i < per.size(); i++)
                    {
                        ll qan = ((a[ch][per[i]][per[j]] * a[ch][per[i]][per[h]]) % mod * a[ch][per[i]][per[hh]]) % mod;
                        obshi += qan;
                        if (obshi >= mod)
                            obshi %= mod;
                    }
                    chgl[per[j]][per[h]][per[hh]] += obshi;
                    if (chgl[per[j]][per[h]][per[hh]] >= mod)
                        chgl[per[j]][per[h]][per[hh]] %= mod;
                }
            }
        }
        for (j = 0; j < per.size(); j++)
        {
            for (int h = 0; h < per.size(); h++)
            {
                for (int hh = 0; hh < per.size(); hh++)
                {
                    for (int glx = 0; glx < per.size(); glx++)
                    {
                        anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
                        if (anss >= mod)
                            anss %= mod;
                    }
                }
            }
        }
        for (j = 0; j < per.size(); j++)
        {
            for (int h = 0; h < per.size(); h++)
            {
                for (int hh = 0; hh < per.size(); hh++)
                {
                    chgl[per[j]][per[h]][per[hh]] = 0;
                }
            }
        }
    }
    cout << anss;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    ll tt = 1;
    //cin >> tt;
    while (tt--) {
        solve();
    }
    return 0;
}

Compilation message

cubeword.cpp: In function 'void solve()':
cubeword.cpp:46:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |         for (j = 0; j < s.size(); j++)
      |                     ~~^~~~~~~~~~
cubeword.cpp:54:33: warning: array subscript has type 'char' [-Wchar-subscripts]
   54 |                 a[s.size()][s[0]][s.back()]++;
      |                                 ^
cubeword.cpp:54:41: warning: array subscript has type 'char' [-Wchar-subscripts]
   54 |                 a[s.size()][s[0]][s.back()]++;
      |                                   ~~~~~~^~
cubeword.cpp:60:33: warning: array subscript has type 'char' [-Wchar-subscripts]
   60 |                 a[s.size()][s[0]][s.back()]++;
      |                                 ^
cubeword.cpp:60:41: warning: array subscript has type 'char' [-Wchar-subscripts]
   60 |                 a[s.size()][s[0]][s.back()]++;
      |                                   ~~~~~~^~
cubeword.cpp:64:33: warning: array subscript has type 'char' [-Wchar-subscripts]
   64 |                 a[s.size()][s[0]][s.back()]++;
      |                                 ^
cubeword.cpp:64:41: warning: array subscript has type 'char' [-Wchar-subscripts]
   64 |                 a[s.size()][s[0]][s.back()]++;
      |                                   ~~~~~~^~
cubeword.cpp:80:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |         for (j = 0; j < per.size(); j++)
      |                     ~~^~~~~~~~~~~~
cubeword.cpp:82:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |             for (int h = 0; h < per.size(); h++)
      |                             ~~^~~~~~~~~~~~
cubeword.cpp:84:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   84 |                 for (int hh = 0; hh < per.size(); hh++)
      |                                  ~~~^~~~~~~~~~~~
cubeword.cpp:87:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   87 |                     for (i = 0; i < per.size(); i++)
      |                                 ~~^~~~~~~~~~~~
cubeword.cpp:89:48: warning: array subscript has type 'char' [-Wchar-subscripts]
   89 |                         ll qan = ((a[ch][per[i]][per[j]] * a[ch][per[i]][per[h]]) % mod * a[ch][per[i]][per[hh]]) % mod;
      |                                                ^
cubeword.cpp:89:56: warning: array subscript has type 'char' [-Wchar-subscripts]
   89 |                         ll qan = ((a[ch][per[i]][per[j]] * a[ch][per[i]][per[h]]) % mod * a[ch][per[i]][per[hh]]) % mod;
      |                                                        ^
cubeword.cpp:89:72: warning: array subscript has type 'char' [-Wchar-subscripts]
   89 |                         ll qan = ((a[ch][per[i]][per[j]] * a[ch][per[i]][per[h]]) % mod * a[ch][per[i]][per[hh]]) % mod;
      |                                                                        ^
cubeword.cpp:89:80: warning: array subscript has type 'char' [-Wchar-subscripts]
   89 |                         ll qan = ((a[ch][per[i]][per[j]] * a[ch][per[i]][per[h]]) % mod * a[ch][per[i]][per[hh]]) % mod;
      |                                                                                ^
cubeword.cpp:89:103: warning: array subscript has type 'char' [-Wchar-subscripts]
   89 |                         ll qan = ((a[ch][per[i]][per[j]] * a[ch][per[i]][per[h]]) % mod * a[ch][per[i]][per[hh]]) % mod;
      |                                                                                                       ^
cubeword.cpp:89:112: warning: array subscript has type 'char' [-Wchar-subscripts]
   89 |                         ll qan = ((a[ch][per[i]][per[j]] * a[ch][per[i]][per[h]]) % mod * a[ch][per[i]][per[hh]]) % mod;
      |                                                                                                                ^
cubeword.cpp:94:32: warning: array subscript has type 'char' [-Wchar-subscripts]
   94 |                     chgl[per[j]][per[h]][per[hh]] += obshi;
      |                                ^
cubeword.cpp:94:40: warning: array subscript has type 'char' [-Wchar-subscripts]
   94 |                     chgl[per[j]][per[h]][per[hh]] += obshi;
      |                                        ^
cubeword.cpp:94:49: warning: array subscript has type 'char' [-Wchar-subscripts]
   94 |                     chgl[per[j]][per[h]][per[hh]] += obshi;
      |                                                 ^
cubeword.cpp:95:36: warning: array subscript has type 'char' [-Wchar-subscripts]
   95 |                     if (chgl[per[j]][per[h]][per[hh]] >= mod)
      |                                    ^
cubeword.cpp:95:44: warning: array subscript has type 'char' [-Wchar-subscripts]
   95 |                     if (chgl[per[j]][per[h]][per[hh]] >= mod)
      |                                            ^
cubeword.cpp:95:53: warning: array subscript has type 'char' [-Wchar-subscripts]
   95 |                     if (chgl[per[j]][per[h]][per[hh]] >= mod)
      |                                                     ^
cubeword.cpp:96:36: warning: array subscript has type 'char' [-Wchar-subscripts]
   96 |                         chgl[per[j]][per[h]][per[hh]] %= mod;
      |                                    ^
cubeword.cpp:96:44: warning: array subscript has type 'char' [-Wchar-subscripts]
   96 |                         chgl[per[j]][per[h]][per[hh]] %= mod;
      |                                            ^
cubeword.cpp:96:53: warning: array subscript has type 'char' [-Wchar-subscripts]
   96 |                         chgl[per[j]][per[h]][per[hh]] %= mod;
      |                                                     ^
cubeword.cpp:100:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  100 |         for (j = 0; j < per.size(); j++)
      |                     ~~^~~~~~~~~~~~
cubeword.cpp:102:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  102 |             for (int h = 0; h < per.size(); h++)
      |                             ~~^~~~~~~~~~~~
cubeword.cpp:104:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  104 |                 for (int hh = 0; hh < per.size(); hh++)
      |                                  ~~~^~~~~~~~~~~~
cubeword.cpp:106:43: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  106 |                     for (int glx = 0; glx < per.size(); glx++)
      |                                       ~~~~^~~~~~~~~~~~
cubeword.cpp:108:53: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                     ^
cubeword.cpp:108:61: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                             ^
cubeword.cpp:108:70: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                      ^
cubeword.cpp:108:85: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                     ^
cubeword.cpp:108:93: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                             ^
cubeword.cpp:108:103: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                                       ^
cubeword.cpp:108:125: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                                                             ^
cubeword.cpp:108:134: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                                                                      ^
cubeword.cpp:108:144: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                                                                                ^
cubeword.cpp:108:168: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                                                                                                        ^
cubeword.cpp:108:177: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                                                                                                                 ^
cubeword.cpp:108:185: warning: array subscript has type 'char' [-Wchar-subscripts]
  108 |                         anss = (anss + ((chgl[per[j]][per[h]][per[hh]] * chgl[per[j]][per[h]][per[glx]]) % mod * chgl[per[h]][per[hh]][per[glx]]) % mod * chgl[per[glx]][per[hh]][per[j]]) % mod;
      |                                                                                                                                                                                         ^
cubeword.cpp:115:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  115 |         for (j = 0; j < per.size(); j++)
      |                     ~~^~~~~~~~~~~~
cubeword.cpp:117:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  117 |             for (int h = 0; h < per.size(); h++)
      |                             ~~^~~~~~~~~~~~
cubeword.cpp:119:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  119 |                 for (int hh = 0; hh < per.size(); hh++)
      |                                  ~~~^~~~~~~~~~~~
cubeword.cpp:121:32: warning: array subscript has type 'char' [-Wchar-subscripts]
  121 |                     chgl[per[j]][per[h]][per[hh]] = 0;
      |                                ^
cubeword.cpp:121:40: warning: array subscript has type 'char' [-Wchar-subscripts]
  121 |                     chgl[per[j]][per[h]][per[hh]] = 0;
      |                                        ^
cubeword.cpp:121:49: warning: array subscript has type 'char' [-Wchar-subscripts]
  121 |                     chgl[per[j]][per[h]][per[hh]] = 0;
      |                                                 ^
cubeword.cpp:38:18: warning: unused variable 'x' [-Wunused-variable]
   38 |     int n, i, j, x, y;
      |                  ^
cubeword.cpp:38:21: warning: unused variable 'y' [-Wunused-variable]
   38 |     int n, i, j, x, y;
      |                     ^
# Verdict Execution time Memory Grader output
1 Execution timed out 1128 ms 34096 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1128 ms 34096 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1128 ms 34096 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1128 ms 34096 KB Time limit exceeded
2 Halted 0 ms 0 KB -