Submission #140685

#TimeUsernameProblemLanguageResultExecution timeMemory
140685AlexPascu007Lozinke (COCI17_lozinke)C++98
100 / 100
262 ms2552 KiB
#include <iostream> #include <map> #include <string> #include <set> #include <algorithm> using namespace std; map<string, int> m; string s[20010],sc; set<string> st; int cmp(string a,string b) { if (a.size()!=b.size()) return a.size()<b.size(); else return a<b; } int n,i,j,k,sol; int main() { cin>>n; for (i=1;i<=n;i++) cin>>s[i]; sort(s+1,s+n+1,cmp); for (i=1;i<=n;i++) { st.clear(); for (j=0;j<s[i].size();j++) { sc.erase(sc.begin(),sc.end()); for (k=j;k<s[i].size();k++) { sc.push_back(s[i][k]); st.insert(sc); } } for (set<string>:: iterator it=st.begin();it!=st.end();it++) if (m.find(*it)!=m.end()) sol+=m[*it]; if (m.find(s[i])==m.end()) m[s[i]]=1; else m[s[i]]++; } int l=1; for (i=2;i<=n;i++) { if (s[i]==s[i-1]) l++; else l=1; sol+=l-1; } cout<<sol; return 0; }

Compilation message (stderr)

lozinke.cpp: In function 'int main()':
lozinke.cpp:24:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (j=0;j<s[i].size();j++) {
                  ~^~~~~~~~~~~~
lozinke.cpp:26:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for (k=j;k<s[i].size();k++) {
                      ~^~~~~~~~~~~~
lozinke.cpp:31:9: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
         for (set<string>:: iterator it=st.begin();it!=st.end();it++)
         ^~~
lozinke.cpp:34:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
             if (m.find(s[i])==m.end())
             ^~
#Verdict Execution timeMemoryGrader output
Fetching results...