| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
完全暴力!!(code)#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct mapp
{
int count;
int distance;
int i;
int d;
}map[(40+1)*40];
int cmp(const void *a,const void *b)
{
if(((struct mapp *)a)->count!=((struct mapp *)b)->count)
return ((struct mapp *)b)->count-((struct mapp *)a)->count;
else if(((struct mapp *)b)->distance!=((struct mapp *)a)->distance)
return ((struct mapp *)b)->distance-((struct mapp *)a)->distance;
else if(((struct mapp *)b)->i!=((struct mapp *)a)->i)
return ((struct mapp *)b)->i-((struct mapp *)a)->i;
else if(((struct mapp *)b)->d!=((struct mapp *)a)->d)
return ((struct mapp *)a)->d-((struct mapp *)b)->d;
}
int main()
{
char a[45];
int i,d,k,j;
int count=0;
int len;
while(gets(a),strcmp(a,"END")!=0)
{
len=strlen(a);
for(i=0,k=0;i<len;i++)
{
for(d=1;i+d<=len;d++)
{
count=0;
map[k].i=i;
map[k].d=d;
for(j=i;j<len&&a[j]=='.';j+=d)
count++;
if(j<len)
map[k].distance=j;
else
map[k].distance=j-d;
map[k].count=count;
k++;
}
}
qsort(map,k,sizeof(map[0]),cmp);
printf("%d %d\n",map[0].i,map[0].d);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator