Submission #472800

#TimeUsernameProblemLanguageResultExecution timeMemory
472800AbdoMoLozinke (COCI17_lozinke)C++17
100 / 100
345 ms17008 KiB
#include<bits/stdc++.h> #define int long long #define ll long long #define pb push_back const int mod = 1e9+7; using namespace std; bool comp(string a,string b) { if(a.size()==b.size()) { return a<b; } return a.size()<b.size(); } void solve(){ int n; cin>>n; vector<string>v; unordered_map<string,int>freq; unordered_map<string,int>freqsb; for(int i=0;i<n;i++) { string s; cin>>s; set<string>ts; for(int j=0;j<s.size();j++) { for(int k=1;k+j<=s.size();k++) { ts.insert(s.substr(j,k)); } } for(auto it=ts.begin();it!=ts.end();it++) { freqsb[*it]++; } freq[s]++; v.pb(s); } sort(v.begin(),v.end(),comp); int ans=0; int c=1; for(int i=0;i<n;i+=freq[v[i]]) { int x=freq[v[i]]; ans+=x*(x-1); ans+=x*(freqsb[v[i]]-x); } cout<<ans<<endl; /* */ } int32_t main(){ int t=1; ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); //cin>>t; while(t--){solve();} return 0; }

Compilation message (stderr)

lozinke.cpp: In function 'void solve()':
lozinke.cpp:26:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |         for(int j=0;j<s.size();j++)
      |                     ~^~~~~~~~~
lozinke.cpp:28:28: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |             for(int k=1;k+j<=s.size();k++)
      |                         ~~~^~~~~~~~~~
lozinke.cpp:42:9: warning: unused variable 'c' [-Wunused-variable]
   42 |     int c=1;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...