提出 #53365394


ソースコード 拡げる

#include<iostream>
#include<map>
#include<queue>
#include<set>
#include <algorithm>    // std::lower_bound, std::upper_bound, std::sort
#include<bits/stdc++.h>


#define ll long long
#define nl '\n'

// #define md 1000000007LL

using namespace std;

ll md=998244353LL;

ll power(ll b, ll p) {
    if(p==0) return 1;

    ll x=power(b, p/2)%md;
    x=(x*x)%md;
    if(p%2) {
        x=(x*b)%md;
    }
    return x;
}

const int K = 26;

struct Vertex {
    int next[K];
    bool output = false;

    int tt=0;

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

vector<Vertex> trie(1);

int get(string s, int v, int pos) {
    if(pos>=s.size()) {
        return trie[v].tt*pos;
    }

    int rt=trie[v].tt*(pos);
    char ch=s[pos];

    int c = ch - 'a';
    if(trie[v].next[c]!=-1) {
        rt-=trie[trie[v].next[c]].tt*(pos);

        rt+=get(s, trie[v].next[c], pos+1);
    }
    return rt;
}

void add_string(string s, int v, int pos) {

    if(pos>=s.size()) {
        trie[v].tt++;
        return;
    }
    char ch=s[pos];
    // cout<<ch<<" "<<v<<" "<<pos<<endl;

    int c = ch - 'a';
    if (trie[v].next[c] == -1) {
        trie[v].next[c] = trie.size();
        trie.emplace_back();
    }
    add_string(s, trie[v].next[c], pos+1);
    trie[v].tt++;
}

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

    ll ans=0;
    for(int i=0;i<n;i++) {
        string x;
        cin>>x;
        ans+=get(x, 0, 0);
        add_string(x, 0, 0);
    }
    cout<<ans<<endl;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
    int t=1;
    // cint>>t;
    while(t--) {
        solve();
    }

	return 0;
}

提出情報

提出日時
問題 E - Yet Another Sigma Problem
ユーザ tanvirtareq
言語 C++ 20 (gcc 12.2)
得点 0
コード長 1734 Byte
結果 RE
実行時間 1589 ms
メモリ 3626364 KiB

コンパイルエラー

Main.cpp: In function ‘int get(std::string, int, int)’:
Main.cpp:45:11: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   45 |     if(pos>=s.size()) {
      |        ~~~^~~~~~~~~~
Main.cpp: In function ‘void add_string(std::string, int, int)’:
Main.cpp:63:11: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   63 |     if(pos>=s.size()) {
      |        ~~~^~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 500
結果
AC × 2
AC × 44
RE × 4
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 1 ms 3488 KiB
00_sample_02.txt AC 1 ms 3424 KiB
01_test_01.txt AC 8 ms 3336 KiB
01_test_02.txt AC 9 ms 3612 KiB
01_test_03.txt AC 9 ms 3392 KiB
01_test_04.txt AC 8 ms 3328 KiB
01_test_05.txt AC 8 ms 3392 KiB
01_test_06.txt AC 9 ms 3488 KiB
01_test_07.txt AC 8 ms 3452 KiB
01_test_08.txt AC 31 ms 3756 KiB
01_test_09.txt AC 31 ms 3888 KiB
01_test_10.txt AC 31 ms 3892 KiB
01_test_11.txt AC 40 ms 32164 KiB
01_test_12.txt AC 39 ms 32152 KiB
01_test_13.txt AC 41 ms 32212 KiB
01_test_14.txt AC 39 ms 32180 KiB
01_test_15.txt AC 40 ms 32164 KiB
01_test_16.txt AC 29 ms 3836 KiB
01_test_17.txt AC 15 ms 3460 KiB
01_test_18.txt AC 11 ms 3444 KiB
01_test_19.txt RE 1589 ms 3624708 KiB
01_test_20.txt AC 40 ms 5260 KiB
01_test_21.txt AC 11 ms 3576 KiB
01_test_22.txt AC 11 ms 3536 KiB
01_test_23.txt AC 12 ms 3636 KiB
01_test_24.txt AC 9 ms 3580 KiB
01_test_25.txt AC 8 ms 3444 KiB
01_test_26.txt AC 8 ms 3532 KiB
01_test_27.txt AC 11 ms 6836 KiB
01_test_28.txt AC 11 ms 6792 KiB
01_test_29.txt AC 13 ms 10320 KiB
01_test_30.txt AC 14 ms 10336 KiB
01_test_31.txt AC 31 ms 4352 KiB
01_test_32.txt AC 33 ms 4408 KiB
01_test_33.txt AC 31 ms 4084 KiB
01_test_34.txt AC 1286 ms 167604 KiB
01_test_35.txt RE 1455 ms 3625604 KiB
01_test_36.txt RE 1467 ms 3624832 KiB
01_test_37.txt RE 1452 ms 3626364 KiB
01_test_38.txt AC 16 ms 5404 KiB
01_test_39.txt AC 1 ms 3364 KiB
01_test_40.txt AC 8 ms 3504 KiB
02_test_01.txt AC 16 ms 17456 KiB
02_test_02.txt AC 20 ms 17464 KiB
02_test_03.txt AC 19 ms 17480 KiB
02_test_04.txt AC 19 ms 17408 KiB
02_test_05.txt AC 19 ms 17488 KiB
02_test_06.txt AC 19 ms 17400 KiB