Submission #141638

#TimeUsernameProblemLanguageResultExecution timeMemory
141638RaresRoscaLozinke (COCI17_lozinke)C++14
100 / 100
270 ms2424 KiB
#include <iostream> #include <string> #include <algorithm> #include <map> #include <set> using namespace std; int l=1,n,i,j,k,sol; string ch[20010],c; set <string> s; map <string, int> m; int cmp(string a, string b){ if(a.size()!=b.size()) return a.size()<b.size(); else return a<b; } int main(){ cin>>n; for(i=1;i<=n;i++) cin>>ch[i]; sort(ch+1,ch+n+1,cmp); for(i=1;i<=n;i++){ s.clear(); for(j=0;j<ch[i].size();j++){ c.erase(c.begin(),c.end()); for(k=j;k<ch[i].size();k++){ c.push_back(ch[i][k]); s.insert(c); } } for(set <string>:: iterator it=s.begin();it!=s.end();it++) if(m.find(*it)!=m.end()) sol+=m[*it]; if(m.find(ch[i])!=m.end()) m[ch[i]]++; else m[ch[i]]=1; } for(i=2;i<=n;i++){ if(ch[i]==ch[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:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(j=0;j<ch[i].size();j++){
                 ~^~~~~~~~~~~~~
lozinke.cpp:26:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(k=j;k<ch[i].size();k++){
                     ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...