UVa 112 Tree Summing

題意不難理解,水題,不必建樹,可以直接字符操作。

 

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<ctype.h>

int n;
int sum[105];
char str;
int main()
{
//	freopen("D:\\1.txt","r",stdin);
	while(scanf("%d",&n) != EOF)
	{
		bool flag = false, lead = false;
		int x = -1;
		int count = 0, m = 0;
		char ch = '#';
		memset(sum,0,sizeof(sum));
		for(;count || ch == '#';)
		{
			str = getchar();
			
			if(str == ' ' || str == '\n')
				continue;
			if(str == '-')
			{
				lead = true;
			}
			if(isdigit(str))
			{
				if(x < 0)
					x = 0;
				x = x * 10 + str - '0';
				m = 0;
			}
			if(x > -1 && !isdigit(str))
			{
				sum[count] = sum[count-1] + (lead ? -1*x : x);
				x = -1;
				lead = false;
			}
			if(str == ')')
			{
				if(ch == '(')
				{
					count--;
					m++;
				}
				if(sum[count] == n && !flag && m >= 2)
				{
					flag = true;
				//	break;
				}
				if(ch != '(')
				{
					m = 0;
					count--;
				}
			}
			if(str == '(')
				count++;
			ch = str;
		}
		if(flag) printf("yes\n");
		else printf("no\n");
	}
	return 0;
}


 

發佈了38 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章