Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define filer() freopen("in.txt","r",stdin)
- #define filew() freopen("out.txt","w",stdout)
- #include<iostream>
- #include<stdio.h>
- #include<string.h>
- #include<math.h>
- #include<algorithm>
- #include<queue>
- #include<stack>
- #include<vector>
- #include <map>
- #define INF 1<<29
- #define SET(a, x) memset((a), (x), sizeof(a))
- #define i64 long long
- #define pb push_back
- #define EPS 1e-9
- using namespace std;
- struct node
- {
- int cnt;
- int A[4];
- }X[2500009];
- int id,ans,len,nw,i,j;
- char str[52];
- void insert()
- {
- len=strlen(str),j;
- nw=0;
- for(i=0;i<len;i++)
- {
- //j=getid(str[i]);
- if(str[i]=='A')j=0;
- else if(str[i]=='C')j=1;
- else if(str[i]=='G')j=2;
- else if(str[i]=='T')j=3;
- if(X[nw].A[j]==-1)X[nw].A[j]=++id;
- nw=X[nw].A[j];
- X[nw].cnt++;
- ans=max(ans,X[nw].cnt*(i+1));
- }
- }
- int main()
- {
- //filer();
- int i,j,k ,T,cas=0,n;
- //scanf("%d%d",,&N,&T);
- scanf("%d",&T);
- while(T--)
- {
- id=0;
- ans=0;
- n;
- for(i=0;i<=2500000;i++)
- {
- X[i].cnt=0;
- X[i].A[0]=-1;
- X[i].A[1]=-1;
- X[i].A[2]=-1;
- X[i].A[3]=-1;
- }
- scanf("%d",&n);
- for(i=0;i<n;i++)
- {
- scanf("%s",str);
- insert();
- }
- printf("Case %d: %d\n",++cas,ans);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement