fork(1) download
  1. #include <bits/stdc++.h>
  2. #define pb push_back
  3. using namespace std;
  4. typedef long long int ll;
  5. ll nc3(ll n)
  6. {
  7. return (n*(n-1)*(n-2))/6;
  8. }
  9. int main()
  10. {
  11. ll t,n,i,a,e,ii,o,u,j,c=0,ans,term;
  12. map < ll , ll > mp;
  13. map < ll , ll > ::iterator it;
  14. string s;
  15. cin>>t;
  16. while(t--)
  17. {
  18. cin>>n;
  19. mp.clear();
  20. for(j=0;j<n;++j)
  21. {
  22. a=0;e=0;ii=0;o=0;u=0;c=0;
  23. cin>>s;
  24. for(i=0;i<s.size();++i)
  25. {
  26. if(s[i]=='a')
  27. a=1;
  28. if(s[i]=='e')
  29. e=1;
  30. if(s[i]=='i')
  31. ii=1;
  32. if(s[i]=='o')
  33. o=1;
  34. if(s[i]=='u')
  35. u=1;
  36. }
  37. if(a==1) c+=1;
  38. if(e==1) c+=2;
  39. if(ii==1) c+=4;
  40. if(o==1) c+=8;
  41. if(u==1) c+=16;
  42. mp[c]++;
  43. }
  44. ans=0;term=0;
  45. for(i=1;i<32;++i)
  46. {
  47. term=0;
  48. c=0;
  49. for(j=0;j<5;++j)
  50. if(i&(1<<j))
  51. c++;
  52. for(it=mp.begin();it!=mp.end();it++)
  53. if(((it->first)&i)==i)
  54. term+=it->second;
  55. if(c%2==0)
  56. ans-=nc3(term);
  57. else ans+=nc3(term);
  58. }
  59. cout<<ans<<endl;
  60. }
  61. return 0;
  62. }
  63.  
Success #stdin #stdout 0s 15240KB
stdin
2
5
helen
irena
arthos
pentos
tulu
3
alen
bira
cult
stdout
1
0