Submission #472793

#TimeUsernameProblemLanguageResultExecution timeMemory
472793AbdoMoLozinke (COCI17_lozinke)C++17
65 / 100
1094 ms3400 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;
    set<string,decltype(comp)*>st(comp);
    for(int i=0;i<n;i++)
    {
        string s;
        cin>>s;
        st.insert(s);
        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++;
        ans+=freq[v[i]]*(freq[v[i]]-1);
        for(;j!=st.end();j++)
        {
            string x=*j;
            if(x.find(v[i])!=-1)
            {
                ans+=freq[*j]*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:41:28: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   41 |             if(x.find(v[i])!=-1)
      |                ~~~~~~~~~~~~^~~~
lozinke.cpp:31:9: warning: unused variable 'c' [-Wunused-variable]
   31 |     int c=1;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...