Submission #305376

# Submission time Handle Problem Language Result Execution time Memory
305376 2020-09-23T02:00:14 Z FlashGamezzz Rima (COCI17_rima) C++17
70 / 140
299 ms 65784 KB
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <string>
#include <utility>
#include <vector>
#include <queue>
 
using namespace std;
 
bool endw[2000000] = {};
int lets[2000000][26] = {}, dp[2000000] = {}, sz = 1, ans = 0;
string s;
 
void add(int c, int i){
	if (i == s.length()){
		endw[c] = true; return;
	}
	int l = int(s[s.length()-i-1])-97;
	if (lets[c][l] == 0){
		lets[c][l] = sz; sz++;
	}
	add(lets[c][l], i+1);
}
void solve(int c){
	vector<int> vals;
	for (int i = 0; i < 26; i++){
		if (lets[c][i] > 0){
			solve(lets[c][i]);
			if (endw[lets[c][i]]){
				dp[c]++;
				vals.push_back(dp[lets[c][i]]);
			}
		}
	}
	sort(vals.begin(), vals.end());
	if (vals.size() >= 1){
		dp[c] += vals[vals.size()-1];
	}
	if (vals.size() >= 2){
		ans = max(ans, dp[c] + vals[vals.size()-2]);
	}
	//cout << c << " " << dp[c] << endl;
	ans = max(ans, dp[c]);
}
 
int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	int n; cin >> n;
	for (int i = 0; i < n; i++){
		cin >> s; add(0, 0);
	}
	solve(0);
	cout << ans << endl;
}

Compilation message

rima.cpp: In function 'void add(int, int)':
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 time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 299 ms 65784 KB Output is correct
5 Correct 18 ms 768 KB Output is correct
6 Incorrect 59 ms 55052 KB Output isn't correct
7 Incorrect 56 ms 54940 KB Output isn't correct
8 Incorrect 57 ms 55000 KB Output isn't correct
9 Incorrect 78 ms 56404 KB Output isn't correct
10 Incorrect 56 ms 55036 KB Output isn't correct