Submission #994117

#TimeUsernameProblemLanguageResultExecution timeMemory
994117vjudge1Rima (COCI17_rima)C++17
56 / 140
1056 ms73612 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { ios::sync_with_stdio(0); cin.tie(NULL),cout.tie(NULL); int n; cin>>n; map<int,vector<string>> mp; for (int i=0;i<n;i++) { string s; cin>>s; mp[s.size()].push_back(s); } vector<string> v; for (auto i:mp) for (auto j:i.second) v.push_back(j); reverse(v.begin(),v.end()); map<string,int> ans; set<string> se; // ans.reserve(500369); // se.reserve(500369); for (auto s:v) se.insert(s); while (!v.empty()) { string s=v.back(); v.pop_back(); int mx=0,m=s.size(); string s1=s.substr(1,m-1); if (ans.find(s1)!=ans.end()) mx=ans[s1]; s1='0'+s1; for (int c='a';c<='z';c++) { s1[0]=c; if (se.find(s1)!=se.end()) mx++; } ans[s]=mx; } int res=0; for (auto i:ans) res=max(res,i.second); cout<<res<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...