제출 #914031

#제출 시각아이디문제언어결과실행 시간메모리
914031CyberCowCubeword (CEOI19_cubeword)C++17
84 / 100
410 ms29072 KiB
#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 <= 'p'; 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; }

컴파일 시 표준 에러 (stderr) 메시지

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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...