mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 11488.cpp
This commit is contained in:
parent
4faf133ea3
commit
94043bfa64
59
UVA/11488.cpp
Normal file
59
UVA/11488.cpp
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstring>
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
using namespace std;
|
||||||
|
#define MAXN 200100
|
||||||
|
/// MAXN nodes, 2 status.
|
||||||
|
/// tree[i][j]:= next node when tree is at [i] with status j.
|
||||||
|
int tree[MAXN][2];
|
||||||
|
int val[MAXN];
|
||||||
|
int nextnode=2;
|
||||||
|
char buffer[1024];
|
||||||
|
int ans=-1;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
scanf("%d",&t);
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
memset(val,0,sizeof(val));
|
||||||
|
memset(tree,0,sizeof(tree));
|
||||||
|
nextnode=2;
|
||||||
|
ans=-1;
|
||||||
|
|
||||||
|
int n;
|
||||||
|
scanf("%d%*c",&n);
|
||||||
|
while(n--)
|
||||||
|
{
|
||||||
|
gets(buffer);
|
||||||
|
char* p=buffer;
|
||||||
|
int pos=1;
|
||||||
|
int L=0;
|
||||||
|
while((*p)-'0'>=0)
|
||||||
|
{
|
||||||
|
if(tree[pos][*p-'0']==0)
|
||||||
|
{
|
||||||
|
tree[pos][*p-'0']=nextnode++;
|
||||||
|
}
|
||||||
|
pos=tree[pos][*p-'0'];
|
||||||
|
p++;
|
||||||
|
val[pos]++;
|
||||||
|
ans=max(ans,(L+1)*val[pos]);
|
||||||
|
//printf("L+1 * val[pos]=%d*%d=%d (pos=%d)\n",L+1,val[pos],(L+1)*val[pos],pos);
|
||||||
|
L++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d\n",ans);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
1
|
||||||
|
4
|
||||||
|
0000
|
||||||
|
0001
|
||||||
|
10101
|
||||||
|
010
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user