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

晕了,还是WA

Posted by ColdHighSun at 2004-10-22 22:18:29 on Problem 1580
#include <cstdio>
#include <cstring>

char word1[2000], word2[2000];

int GetGCD(int a, int b)
{
	int temp;
	while (b > 0)
	{
		temp = b;
		b = a % b;
		a = temp;
	}

	return a;
}

void main()
{
	FILE *fi = stdin;
//	fi = fopen("1580.txt", "r");

	fscanf(fi, "%s", word1);
	while (word1[0] != '-')
	{
		fscanf(fi, "%s", word2);
		int len1 = (int)strlen(word1);
		int len2 = (int)strlen(word2);
		if (len1 > len2)
		{
			char strSwap[2000];
			strcpy(strSwap, word1);
			strcpy(word1, word2);
			strcpy(word2, strSwap);

			int intSwap = len1;
			len1 = len2;
			len2 = intSwap;
		}

		int common;
		int max = 0;
		for (int head = 0; head < len2 - max; head++)
		{
			common = 0;
			for (int i = 0; i + head < len2 && i < len1; i++)
			{
				if (word1[i] == word2[i + head])
				{
					common++;
				}
			}
			if (common > max)
			{
				max = common;
			}
		}

		int intGCD = GetGCD(max * 2, (int)strlen(word1) + (int)strlen(word2));

		int up = max * 2 / intGCD;
		int down = (int)(strlen(word1) + strlen(word2)) / intGCD;

		printf("appx(%s,%s) = ", word1, word2);
		if (up == 0)
		{
			printf("0\n");
		}
		else if (up == down)
		{
			printf("1\n");
		}
		else
		{
			printf("%d/%d\n", up, down);
		}

		fscanf(fi, "%s", word1);
	}
	fclose(fi);
}

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