udebug 的数据全部通过,找不着错误。
谢谢!
#include <bits/stdc++.h>
using namespace std;
int ch[100010][15],cnt[3010]={},tot;
string nu[10010];
void trie_ins(string s){
int u=0;
for(int i=0;i<s.length();++i){
if(ch[u][s[i]-'0']==-1) ch[u][s[i]-'0']=++tot;
u=ch[u][s[i]-'0'],cnt[u]++;
}
}
bool gthrd(string s){
int u=0;
for(int i=0;i<s.length();++i) u=ch[u][s[i]-'0'];
return cnt[u]>1;
}
void solve(){
int n;
memset(ch,-1,sizeof(ch));
memset(cnt,0,sizeof(cnt));
tot=0;
cin>>n;
for(int i=1;i<=n;++i){
cin>>nu[i];
trie_ins(nu[i]);
}
for(int i=1;i<=n;++i){
if(gthrd(nu[i])){
cout<<"NO"<<endl;
return;
}
}
cout<<"YES"<<endl;
}
int main(){
int t;
cin>>t;
while(t--) solve();
return 0;
}