Submission #488665

#TimeUsernameProblemLanguageResultExecution timeMemory
488665JovanBLozinke (COCI17_lozinke)C++17
100 / 100
398 ms16732 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using ld = long double;

const int N = 20000;

string str[N+5];

map <string, int> cnt;

int main(){
    ios_base::sync_with_stdio(false), cin.tie(0);
    cout.precision(10);
    cout << fixed;

    int n;
    cin >> n;
    for(int i=1; i<=n; i++) cin >> str[i];
    sort(str+1, str+1+n, [](string a, string b){ return a.size() < b.size(); });
    ll res = 0;
    for(int i=1; i<=n; i++){
        string s = str[i];
        res += cnt[s];
        map <string, bool> used;
        for(int j=0; j<s.size(); j++){
            string t = "";
            for(int k=j; k<s.size(); k++){
                t += s[k];
                if(!used.count(t)) used[t] = 1, res += cnt[t];
            }
        }
        cnt[s]++;
    }
    cout << res << "\n";
    return 0;
}

Compilation message (stderr)

lozinke.cpp: In function 'int main()':
lozinke.cpp:27:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |         for(int j=0; j<s.size(); j++){
      |                      ~^~~~~~~~~
lozinke.cpp:29:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |             for(int k=j; k<s.size(); k++){
      |                          ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...