#45957: dfisiaueqwrrewqwreqwr-9qewr8ewr-9ewr8qewr-ew


bradyou0726 (加州多米多羅)

學校 : 不指定學校
編號 : 288232
來源 : [136.52.122.212]
最後登入時間 :
2025-10-10 10:02:47

#include<bits/stdc++.h>
using namespace std;
int N;
string F; 
vector<string>U[101];
int check(string F,int i){
    int C=F.length();
    for(int k=0;k<i;k++){
        if(F[k]!=F[C-i+k]){
            return 0;
        }
    }
    string E="";
    for(int k=i;k<C-i;k++){
        E+=F[k];
    }int R=lower_bound(U[C-2*i].begin(),U[C-2*i].end(),E)-U[C-2*i].begin();
    return R<U[C-2*i].size()&&U[C-2*i][R]==E;
}
int main(){
    cin>>N;
    for(int n=0;n<N;n++){
        cin>>F;
        U[F.length()].push_back(F);
    }
    for(int L=1;L<=100;L=L+1)
        sort(U[L].begin(),U[L].end());
    int K=0;
    for(int L=3;L<=100;L+=1){
        for(string x : U[L]){
            for(int i=1;1+2*i<=L;i++){
                K+=check(x,i);
            }
        }
    }
    cout<<K;
}