NYOJ 625 笨蛋的难题(二)

笨蛋的难题(二)

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述
笨蛋就业了,并且是在上千应聘中脱颖而出的,和他一起脱颖而出的还有傻子。公司的老板对二人视为珍宝,为了激励他们的工作热情,给他们一小时发一次工资(很高兴吧)。但每次只发给一个人,并且每次发的工资可能不同(老板很厉害吧)。傻子和笨蛋为了证明自己比对方智商高,他们事先知道每次发的工资的多少。他们暗中达成协议:他们不是将工资平分,而是轮流领取。该领工资的人可以选择跳过一个或多个小时的工资,而领取后面的工资。跳过的工资会捐给孤儿院。他们只管自己获得最大利益,不管对方获得的利益如何,每次笨蛋先领。比如
100, 100, 800, 70, 150 ,100。笨蛋第一个小时不领,第二个小时也不领,直接领第三个小时发的工资,傻子领第四个小时发的工资,笨蛋再领第五个小时发的工资,傻子再领第六个小时发的工资,这样笨蛋领到950元的工资,傻子领到170元的钱,其余的全部捐给孤儿院为200元。

输入
多组测试数据

第一行输入t,表示共发t个小时的工资(0<t<120)

接下来一行是t个数表示t小时内每个小时的工资Money(0<money<10000)

输出
三个数字M,N,V

他们分别表示笨蛋领的工资,傻子领的工资,还有捐给孤儿院的钱

样例输入
6
100 100 800 70 150 100
3
100 100 100
样例输出
950 170 200
200 100 0
技巧性比较强!
AC码:
#include<stdio.h>
int main()
{
	int n,i,t,max1,max2,total;
	int num[130];
	while(~scanf("%d",&n))
	{
		total=0;
		for(i=0;i<n;i++)
		{
			scanf("%d",&num[i]);
			total+=num[i];
		}
		max1=0;
		max2=0;
		for(i=n-1;i>=0;i--)
		{
			if(num[i]+max2>=max1)
			{
				t=max1;
				max1=num[i]+max2;
				max2=t;
			}
		}
		printf("%d %d %d\n",max1,max2,total-max1-max2);
	}
	return 0;
}

NYOJ 625 笨蛋的难题(二)

时间: 2024-11-05 12:23:23

NYOJ 625 笨蛋的难题(二)的相关文章

NYOJ 745 蚂蚁的难题(二)

蚂蚁的难题(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种食材都有一个喜爱程度值Vi,当然,如果Vi小于0的时候,表示蚂蚁讨厌这种食材.因为马上就要下雨了,所以蚂蚁只能搬一次,但是能够搬走连续一段的食材.时间紧急,你快帮帮小蚂蚁吧,让它搬走的食材喜爱值和最大. 输入 有多组测试数据(以EOF结尾).每组数据有两行,第一行有一个n,表示有n种食材排成了一个圈.(

NYOJ 624 笨蛋的难题(一)

笨蛋的难题(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述        笨蛋之所以称为笨蛋,是因为他有点路痴.他一旦不高兴,就必然一个人漫无目的的出去走走.今天下雨了,他又不高兴了,怎么办?那就出去走呗,这不又丢了,这次幸好记下出来时的方向,并且在一张纸上密密麻麻的记下了他拐的弯(他很聪明吧,拐的弯都是90度的弯),0代表左拐,1代表右拐,那么多0.1,他实在看不下去了,正好遇见善良加聪明的你,你能告诉他,他现在面向哪吗? 输入 多组测试数据 第一行 输入:

nyoj 739 笨蛋的难题四

笨蛋难题四 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 这些日子笨蛋一直研究股票,经过调研,终于发现xxx公司股票规律,更可喜的是 笨蛋推算出这家公司每天的股价,为了防止别人发现他的秘密.他决定对于这家公司的 股票最多买一次,现在笨蛋已经将股票价格列了出来.(这已经不是笨蛋的难题了,他已经解决 呵 呵).只想难为难为你呀,从股票价格表上,你能算出笨蛋的每股股票最多能赚多少钱吗? 输入 第一行一个n,表示n天(小于100000) 第二行 给出n天每股的价格 输出

NYOJ笨蛋的难题(一)

笨蛋的难题(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述        笨蛋之所以称为笨蛋,是因为他有点路痴.他一旦不高兴,就必然一个人漫无目的的出去走走.今天下雨了,他又不高兴了,怎么办?那就出去走呗,这不又丢了,这次幸好记下出来时的方向,并且在一张纸上密密麻麻的记下了他拐的弯(他很聪明吧,拐的弯都是90度的弯),0代表左拐,1代表右拐,那么多0.1,他实在看不下去了,正好遇见善良加聪明的你,你能告诉他,他现在面向哪吗? 输入 多组测试数据 第一行 输入:

NYOJ 1069 生活的难题

 生活的难题 时间限制:1500 ms  |  内存限制:240000 KB 难度:3 描述 生活又调皮了,整天不好好的集训,还偷偷的看电影!今天终于被逮到了.于是万恶的BOSS们就出了一个题来为难为难他.题目是这样的,输入一个整型数组,数组里除了两个数出现一次之外,其它所有数字出现的次数都是2次,求这两个数字的乘积. 输入 第一行输入一个整数T(T<=5),表示有T组测试数据. 每组数据占两行,第一行为一个数N(2<=N<=1000),表示有N个数:第二行有N个数,1<=a[

NYOJ-745 蚂蚁的难题(二)【动态规划】

蚂蚁的难题(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种食材都有一个喜爱程度值Vi,当然,如果Vi小于0的时候,表示蚂蚁讨厌这种食材.因为马上就要下雨了,所以蚂蚁只能搬一次,但是能够搬走连续一段的食材.时间紧急,你快帮帮小蚂蚁吧,让它搬走的食材喜爱值和最大. 输入 有多组测试数据(以EOF结尾). 每组数据有两行,第一行有一个n,表示有n种食材排成了一个圈.

12-蚂蚁难题二

蚂蚁的难题(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种食材都有一个喜爱程度值Vi,当然,如果Vi小于0的时候,表示蚂蚁讨厌这种食材.因为马上就要下雨了,所以蚂蚁 只能搬一次,但是能够搬走连续一段的食材.时间紧急,你快帮帮小蚂蚁吧,让它搬走的食材喜爱值和最大. 输入 有多组测试数据(以EOF结尾). 每组数据有两行,第一行有一个n,表示有n种食材排成了一个圈

NYOJ 116 士兵杀敌(二) (线段树区间求和)

题目链接:NYOJ 116 士兵杀敌(二) 这一个是线段树的入门级水题,本题要求我们给出某个区间的区间和.这个问题和线段树的单点更新还是基本一致的.只要把单点更新中的值覆盖变为值得叠加,这一题便可以轻松解决了.如果不知道线段树的单点更新,请移步:传送门 [代码如下] #include <stdio.h> #include <string.h> #define MAXN 1<<21 //lg100000 约等于 21 typedef struct{ int left,ri

NYOJ 116 士兵杀敌(二)【线段树 单点更新】

题意:题意很清楚: 策略:如题. 这道题就是简单的线段树应用,据说还可以用树状数组来做,等我学了之后在说吧. 代码: #include<stdio.h> #include<string.h> #define LC l, m, rt<<1 #define RC m+1, r, rt<<1|1 #define LL long long #define MAXN 1000000 LL sum[MAXN<<2]; void PushUp(int rt)