Submission #472799

#TimeUsernameProblemLanguageResultExecution timeMemory
472799AbdoMoLozinke (COCI17_lozinke)C++17
100 / 100
460 ms18352 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;
    map<string,int>freq;
    map<string,int>freqsb;
    set<string,decltype(comp)*>st(comp);
    for(int i=0;i<n;i++)
    {
        string s;
        cin>>s;
        st.insert(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;
    auto it=st.begin();
    for(int i=0;i<n;i+=freq[v[i]],it++)
    {
        auto j=it;
        j++;
        int x=freq[v[i]];
        ans+=x*(x-1);
        ans+=freq[v[i]]*(freqsb[v[i]]-freq[v[i]]);

    }
    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:28: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]
   28 |         for(int j=0;j<s.size();j++)
      |                     ~^~~~~~~~~
lozinke.cpp:30: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]
   30 |             for(int k=1;k+j<=s.size();k++)
      |                         ~~~^~~~~~~~~~
lozinke.cpp:44:9: warning: unused variable 'c' [-Wunused-variable]
   44 |     int c=1;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...