Submission #488665

# Submission time Handle Problem Language Result Execution time Memory
488665 2021-11-19T22:22:30 Z JovanB Lozinke (COCI17_lozinke) C++17
100 / 100
398 ms 16732 KB
#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

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 time Memory Grader output
1 Correct 1 ms 848 KB Output is correct
2 Correct 1 ms 848 KB Output is correct
3 Correct 1 ms 976 KB Output is correct
4 Correct 2 ms 1000 KB Output is correct
5 Correct 8 ms 1232 KB Output is correct
6 Correct 14 ms 1320 KB Output is correct
7 Correct 17 ms 2024 KB Output is correct
8 Correct 29 ms 2800 KB Output is correct
9 Correct 70 ms 2720 KB Output is correct
10 Correct 197 ms 7752 KB Output is correct
11 Correct 116 ms 4472 KB Output is correct
12 Correct 348 ms 16732 KB Output is correct
13 Correct 227 ms 2796 KB Output is correct
14 Correct 219 ms 15000 KB Output is correct
15 Correct 398 ms 16580 KB Output is correct
16 Correct 233 ms 1296 KB Output is correct
17 Correct 57 ms 1144 KB Output is correct
18 Correct 42 ms 1104 KB Output is correct
19 Correct 216 ms 8600 KB Output is correct
20 Correct 110 ms 1116 KB Output is correct