Submission #1335343

#TimeUsernameProblemLanguageResultExecution timeMemory
1335343MuhammadSaramRima (COCI17_rima)C++20
56 / 140
800 ms62544 KiB
#include <bits/stdc++.h>

using namespace std;

const int M = 3e5 + 1; 

vector<string> s[M];

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(NULL), cout.tie(NULL);

	int n;
	cin>>n;
	map<string,int> mp[2];
	for (int i=0;i<n;i++)
	{
		string t;
		cin>>t;
		s[(int)t.size()].push_back(t);
	}
	for (string t:s[1])
		mp[1][t]=s[1].size();
	int ans=s[1].size();
	for (int i=2;i<M;i++)
	{
		mp[i%2].clear();
		for (string t:s[i])
		{
			string t1=t.substr(1,i-1);
			mp[1-i%2][t1]++;
		}
		for (string t:s[i])
			mp[i%2][t]=mp[1-i%2][t.substr(1,i-1)], ans=max(ans,mp[i%2][t]);
	}
	cout<<ans<<endl;

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...