Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

完全暴力!!(code)

Posted by 12619 at 2009-08-15 10:41:21 on Problem 3656
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator