Submission #53405355


Source Code Expand

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

const int K = 26;
struct Vertex {
    int next[K];
    int count = 0;
    bool output = false;

    Vertex() { fill(begin(next), end(next), -1); }
};

vector<Vertex> trie(1);

void add_string(string &s) {
    int v = 0;
    for (char ch : s) {
        int c = ch - 'a';
        if (trie[v].next[c] == -1) {
            trie[v].next[c] = trie.size();
            trie.emplace_back();
        }
        v = trie[v].next[c];
        trie[v].count++;
    }
    trie[v].output = true;
}

int count_prefix_match(string &s) {
    int v = 0, res = 0;
    for (char ch : s) {
        int c = ch - 'a';
        if (trie[v].next[c] == -1) {
            return res;
        }
        v = trie[v].next[c];
        res += trie[v].count;
    }
    return res;
}

void solve() {
    int n;
    cin >> n;

    long long ans = 0;
    for (int zz = 0; zz < n; zz++) {
        string str;
        cin >> str;
        ans += count_prefix_match(str);
        add_string(str);
    }
    cout << ans << endl;
}

int main() {
    solve();
    return 0;
}

Submission Info

Submission Time
Task E - Yet Another Sigma Problem
User adaptatron
Language C++ 20 (gcc 12.2)
Score 500
Code Size 1134 Byte
Status AC
Exec Time 37 ms
Memory 60964 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 48
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 02_test_01.txt, 02_test_02.txt, 02_test_03.txt, 02_test_04.txt, 02_test_05.txt, 02_test_06.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3660 KiB
00_sample_02.txt AC 1 ms 3496 KiB
01_test_01.txt AC 10 ms 3488 KiB
01_test_02.txt AC 9 ms 3428 KiB
01_test_03.txt AC 10 ms 3496 KiB
01_test_04.txt AC 9 ms 3460 KiB
01_test_05.txt AC 10 ms 3468 KiB
01_test_06.txt AC 9 ms 3480 KiB
01_test_07.txt AC 9 ms 3508 KiB
01_test_08.txt AC 6 ms 3620 KiB
01_test_09.txt AC 6 ms 3556 KiB
01_test_10.txt AC 6 ms 3588 KiB
01_test_11.txt AC 23 ms 31984 KiB
01_test_12.txt AC 23 ms 31988 KiB
01_test_13.txt AC 22 ms 31840 KiB
01_test_14.txt AC 24 ms 31916 KiB
01_test_15.txt AC 22 ms 31936 KiB
01_test_16.txt AC 6 ms 3572 KiB
01_test_17.txt AC 24 ms 3428 KiB
01_test_18.txt AC 14 ms 3652 KiB
01_test_19.txt AC 23 ms 32072 KiB
01_test_20.txt AC 24 ms 3364 KiB
01_test_21.txt AC 15 ms 3580 KiB
01_test_22.txt AC 14 ms 3560 KiB
01_test_23.txt AC 14 ms 3660 KiB
01_test_24.txt AC 10 ms 3588 KiB
01_test_25.txt AC 10 ms 3588 KiB
01_test_26.txt AC 9 ms 3548 KiB
01_test_27.txt AC 12 ms 6860 KiB
01_test_28.txt AC 12 ms 6916 KiB
01_test_29.txt AC 15 ms 10504 KiB
01_test_30.txt AC 15 ms 10460 KiB
01_test_31.txt AC 6 ms 3604 KiB
01_test_32.txt AC 6 ms 3648 KiB
01_test_33.txt AC 6 ms 3780 KiB
01_test_34.txt AC 37 ms 60568 KiB
01_test_35.txt AC 23 ms 32072 KiB
01_test_36.txt AC 36 ms 60964 KiB
01_test_37.txt AC 25 ms 32104 KiB
01_test_38.txt AC 1 ms 3560 KiB
01_test_39.txt AC 1 ms 3500 KiB
01_test_40.txt AC 9 ms 3492 KiB
02_test_01.txt AC 18 ms 17516 KiB
02_test_02.txt AC 20 ms 17452 KiB
02_test_03.txt AC 21 ms 17580 KiB
02_test_04.txt AC 20 ms 17564 KiB
02_test_05.txt AC 20 ms 17672 KiB
02_test_06.txt AC 21 ms 17552 KiB