(1.1.9)UVA 10930 A-Sequence(模拟)

/*
 * UVA_10930_1.cpp
 *
 *  Created on: 2013年10月7日
 *      Author: Administrator
 */

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int K[30001];
int main(){
	int n;
	int counter = 1;
	while(scanf("%d",&n)!=EOF){

		memset(K,0,sizeof(K));
		int i,j;
		printf("Case #%d:",counter++);
		int w;
		bool ok = true;
		int last = 0;
		K[0] = 1;//因为数字最小是从1开始的,所以将K[0]设为1,让0变为不可用
		for(i = 1 ; i <= n ; ++i){
			cin >> w;
			cout<<" "<<w ;

			ok &= !K[w] && w > last;

			for(j = 10000 ; j >= w ; --j){
				if(K[j - w]){
					K[j] = 1;
				}
			}
			last = w;
		}
		cout<<endl;

		cout<<"This is "<< ((ok)?"":"not ") <<"an A-sequence.";
        cout<<endl;

	}


	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值