2010年浙江大学计算机及软件工程研究生机试真题

http://ac.jobdu.com/problem.php?pid=1006 ZOJ问题

/*
若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;
这里azbojac和azbjc相比 z和j中间+了一个o   j后面就+了一个a 而z前面也有一个a
以此类推
如果再执行一次这个规定
那么z和j中间就+了2个o   后面也+了2个前面的a 
...
所以z前面'o'的个数乘以z和j中间o的个数=j后面o的个数
*/
#include<iostream>
using namespace std;
#include<stdio.h>
#include<string.h>

int main(void)
{
	int i,len,numj,numz,front,mid,back;
	char str[1008];
	while(scanf("%s",str)!=EOF)
	{
		len=strlen(str);
		numj=numz=0;
		for(i=0;i<len;i++)
		{
			if(str[i]=='j')
				numj++;
			else if(str[i]=='z')
				numz++;
		}

		if(numj!=1 || numz!=1)    //合法的字符串中只包含一个z和一个j
		{
			printf("Wrong Answer\n");
			continue;
		}
		front=mid=back=0;
		for(i=0;str[i]!='z';i++)
			front++;
		i++;
		for(;i<len && str[i]!='j';i++)
			mid++;
		i++;
		for(;i<len;i++)
			back++;
		if(mid>0 && front*mid==back)
			printf("Accepted\n");
		else
			printf("Wrong Answer\n");
	}
	return 0;
}


 

你可能感兴趣的:(c,2010)