Advertisement
Guest User

Untitled

a guest
Jan 6th, 2016
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. #define filer() freopen("in.txt","r",stdin)
  2. #define filew() freopen("out.txt","w",stdout)
  3.  
  4. #include<iostream>
  5. #include<stdio.h>
  6. #include<string.h>
  7. #include<math.h>
  8. #include<algorithm>
  9. #include<queue>
  10. #include<stack>
  11. #include<vector>
  12. #include <map>
  13. #define INF 1<<29
  14. #define SET(a, x) memset((a), (x), sizeof(a))
  15. #define i64 long long
  16. #define pb push_back
  17. #define EPS 1e-9
  18. using namespace std;
  19.  
  20. struct node
  21. {
  22. int cnt;
  23. int A[4];
  24. }X[2500009];
  25. int id,ans,len,nw,i,j;
  26. char str[52];
  27.  
  28.  
  29.  
  30. void insert()
  31. {
  32. len=strlen(str),j;
  33. nw=0;
  34. for(i=0;i<len;i++)
  35. {
  36. //j=getid(str[i]);
  37. if(str[i]=='A')j=0;
  38. else if(str[i]=='C')j=1;
  39. else if(str[i]=='G')j=2;
  40. else if(str[i]=='T')j=3;
  41.  
  42. if(X[nw].A[j]==-1)X[nw].A[j]=++id;
  43. nw=X[nw].A[j];
  44. X[nw].cnt++;
  45. ans=max(ans,X[nw].cnt*(i+1));
  46. }
  47. }
  48.  
  49. int main()
  50. {
  51. //filer();
  52. int i,j,k ,T,cas=0,n;
  53. //scanf("%d%d",,&N,&T);
  54. scanf("%d",&T);
  55. while(T--)
  56. {
  57. id=0;
  58. ans=0;
  59. n;
  60. for(i=0;i<=2500000;i++)
  61. {
  62. X[i].cnt=0;
  63. X[i].A[0]=-1;
  64. X[i].A[1]=-1;
  65. X[i].A[2]=-1;
  66. X[i].A[3]=-1;
  67. }
  68. scanf("%d",&n);
  69. for(i=0;i<n;i++)
  70. {
  71. scanf("%s",str);
  72. insert();
  73. }
  74. printf("Case %d: %d\n",++cas,ans);
  75. }
  76. return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement