Submission #338720

#TimeUsernameProblemLanguageResultExecution timeMemory
338720FlashGamezzzSavez (COCI15_savez)C++17
108 / 120
148 ms65540 KiB
#include <iostream> #include <cstdlib> #include <cstdio> #include <fstream> #include <algorithm> #include <utility> #include <vector> #include <iostream> #include <string> #include <unordered_map> using namespace std; int n, p = 31, m = 1000000009; vector< vector<long long> > ph, sh; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n; long long pow = 1, h = 0; vector<long long> temp; for (int i = 0; i < n; i++){ string a; cin >> a; pow = 1, h = 0; temp.clear(); for (int j = 0; j < a.length(); j++) { h += (a[j]-'A'+1)*pow; h %= m; temp.push_back(h); pow *= p; pow %= m; } ph.push_back(temp); h = 0; temp.clear(); for (int j = a.length()-1; j >= 0; j--) { h *= p; h %= m; h += (a[j]-'A'+1); h %= m; temp.push_back(h); } sh.push_back(temp); } unordered_map<long long, int> subsq; int ans = 0; for (int i = 0; i < n; i++){ int mv = 0; for (int j = 0; j < ph[i].size(); j++){ if (ph[i][j] == sh[i][j]){ unordered_map<long long, int>::iterator it = subsq.find(ph[i][j]); if (it != subsq.end()){ mv = max(mv, it->second); } } } subsq[ph[i][ph[i].size()-1]] = mv+1; ans = max(ans, mv+1); } cout << ans << endl; }

Compilation message (stderr)

savez.cpp: In function 'int main()':
savez.cpp:24:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |   for (int j = 0; j < a.length(); j++) {
      |                   ~~^~~~~~~~~~~~
savez.cpp:39:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |   for (int j = 0; j < ph[i].size(); j++){
      |                   ~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...