Submission #303985

#TimeUsernameProblemLanguageResultExecution timeMemory
303985FlashGamezzzRima (COCI17_rima)C++17
42 / 140
1098 ms262148 KiB
#include <iostream> #include <cstdlib> #include <cstdio> #include <fstream> #include <algorithm> #include <string> #include <utility> #include <vector> #include <queue> using namespace std; vector<int> lets[3000000]; bool endb[3000000] = {}; int dp[3000000] = {}, sz = 0, ans = 0; void add(int c, int i, string s){ if (i == s.length()){ endb[c] = true; return; } int l = int(s[s.length()-i-1])-97; if (lets[c][l] == 0){ lets[sz].resize(26, 0); lets[c][l] = sz; sz++; } add(lets[c][l], i+1, s); } void solve(int c){ int t = 0; for (int i = 0; i < 26; i++){ if (lets[c][i] != 0){ solve(lets[c][i]); t += dp[lets[c][i]]; } } if (endb[c]){ t++; dp[c] = t; } ans = max(ans, t); } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; lets[sz].resize(26, 0); sz++; for (int i = 0; i < n; i++){ string s; cin >> s; add(0, 0, s); } solve(0); cout << ans << endl; }

Compilation message (stderr)

rima.cpp: In function 'void add(int, int, std::string)':
rima.cpp:18:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |  if (i == s.length()){
      |      ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...