fork(2) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define mp make_pair
  5. #define nline cout<<"\n"
  6. #define fast ios_base::sync_with_stdio(false),cin.tie(0)
  7. #define ain(A, B, C) assert(IN(A, B, C))
  8. #define ull unsigned long long int
  9. #define ll long long int
  10. #define pii pair<int,int>
  11. #define MAXX 100009
  12. #define fr(a,b,i) for(int i=a;i<b;i++)
  13. vector<int>G[MAXX];
  14. struct node
  15. {
  16. bool leaf;
  17. struct node* child[10];
  18. node()
  19. {
  20. for(int i=0;i<10;i++)child[i]=NULL;
  21. leaf=false;
  22. }
  23. };
  24. struct node* root;
  25. bool add(string &s)
  26. {
  27. struct node* curr=root;
  28. for(int i=0;i<s.length();i++)
  29. {
  30. int SS=s[i]-'0';
  31. if(curr->child[SS]==NULL)
  32. curr->child[SS]=new node();
  33. curr=curr->child[SS];
  34. }
  35. for(int i=0;i<10;i++)
  36. {
  37. if(curr->child[i]!=NULL)
  38. return true;
  39. }
  40. curr->leaf=true;
  41. return false;
  42. }
  43. void deleteme(node* curr)
  44. {
  45. for(int i=0;i<10;i++)
  46. if(curr->child[i])
  47. deleteme(curr->child[i]);
  48. delete curr;
  49. }
  50. int main()
  51. {
  52. fast;
  53. int t;
  54. cin>>t;
  55. while(t--)
  56. {
  57. root=new node();
  58. int n,f=0;
  59. cin>>n;
  60. for(int i=0;i<n;i++)
  61. {
  62. string s;
  63. cin>>s;
  64. if(add(s)){f=1;}
  65. }
  66. if(f)
  67. cout<<"NO"<<endl;
  68. else
  69. cout<<"YES"<<endl;
  70. deleteme(root);
  71. }
  72. return 0;
  73. }
  74.  
  75.  
Time limit exceeded #stdin #stdout 5s 4584KB
stdin
Standard input is empty
stdout
Standard output is empty