题目
wddm:
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
const int maxx = 50*(1e+4) + 1;
bool f = true;
int zd[maxx][42]={},cnt=1;
bool bj[maxx]={};
void pd(string str){
int fa = 1;
int len = str.size();
for(int i=0;i<len;++i){
int c = str[i] - '0';
if(!zd[fa][c]){
zd[fa][c] = ++cnt;
}else if(bj[zd[fa][c]] == true){
cout<<"NO"<<endl;
f = false;
}
fa = zd[fa][c];
}
bj[fa] = true;
return;
}
int main(){
int t=0,n=0;
cin>>t; ++t;
string x;
while(--t){
cnt=0;
memset(bj,0,sizeof(bj));
memset(zd,0,sizeof(zd));
f = true;
cin>>n;
for(int i=1;i<=n;++i){
cin>>x;
pd(x);
}
if(f == true){
cout<<"YES"<<endl;
}
}
return 0;
}