Submission #884326

#TimeUsernameProblemLanguageResultExecution timeMemory
884326vjudge1Lozinke (COCI17_lozinke)C++17
100 / 100
69 ms1628 KiB
#ifndef Local
    #pragma GCC optimize("O3,unroll-loops")
    const int lim=2e5+100;
#else
    const int lim=2e3+100;
#endif

#include "bits/stdc++.h"
using namespace std;

#define int int64_t
#define pb push_back

const int mod=1e9+7;
using pii=pair<int,int>;

inline void solve(){
    int n;
    cin>>n;
    unordered_map<string,int>all;
    for(int i=0;i<n;i++){
        string s;
        cin>>s;
        all[s]++;
    }
    int ans=0;
    for(auto [s,c]:all){
        ans+=c*(c-1);
        string now="";
        unordered_set<string>did;
        for(int i=0;i<s.size()-1;i++){
            now+=s[i];
            did.insert(now);
        }
        for(int i=1;i<s.size();i++){
            now="";
            for(int j=i;j<s.size();j++){
                now+=s[j];
                did.insert(now);
            }
        }
        for(string ss:did){
            if(!all.count(ss))continue;
            ans+=c*all[ss];
        }
    }
    cout<<ans<<"\n";
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
#ifdef Local  
    freopen(".in","r",stdin);
    freopen(".out","w",stdout);
#else
    //freopen("grass.in","r",stdin);
    //freopen("grass.out","w",stdout);
#endif
    int t=1;
    //cin>>t;
    while (t--)
    {
        solve();
    }
}

Compilation message (stderr)

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