Submission #104124

#TimeUsernameProblemLanguageResultExecution timeMemory
104124KewoSavez (COCI15_savez)C++14
96 / 120
148 ms66560 KiB
#include <bits/stdc++.h> #define pb push_back #define ppb pop_back #define fi first #define se second #define mid ((x + y) / 2) #define left (ind * 2) #define right (ind * 2 + 1) #define mp make_pair #define timer ((double)clock() / CLOCKS_PER_SEC) #define endl "\n" #define spc " " #define d1(x) cerr<<#x<<":"<<x<<endl #define d2(x, y) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<endl #define d3(x, y, z) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<" "<<#z<<":"<<z<<endl #define fast_io() ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) using namespace std; typedef long long int lli; typedef pair<int, int> ii; typedef pair<char, char> cc; typedef pair<ii, int> iii; typedef pair<double, double> dd; const int N = (int)(5e5 + 5); const int LOG = (int)(20); struct node { int word, ans; map<cc, int> ed; }tree[N]; int n, sz = 1; string s[N]; void add(int ind, int idx, int x) { if(x == s[ind].length() - 1) { tree[idx].word++; tree[idx].ans++; return; } char fc = s[ind][x], lc = s[ind][(int)s[ind].length() - x - 1]; cc e = {fc, lc}; if(tree[idx].ed.count(e) == 0) tree[idx].ed[e] = ++sz; add(ind, tree[idx].ed[e], x + 1); tree[idx].ans = max(tree[idx].ans, tree[tree[idx].ed[e]].ans); } int main() { fast_io(); // freopen("inp.in", "r", stdin); cin >> n; for(int i = 1; i <= n; i++) { cin >> s[i]; s[i].pb('$'); } for(int i = n; i >= 1; i--) add(i, 1, 0); cout << tree[1].ans; }

Compilation message (stderr)

savez.cpp: In function 'void add(int, int, int)':
savez.cpp:37:7: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if(x == s[ind].length() - 1) {
     ~~^~~~~~~~~~~~~~~~~~~~~~
#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...