西南民族大学第十届校赛(同步赛)F

题目描述

        总所不周知!ZZZZone有了女朋友却谁也不知道。但是ZZZZone在集训队总是和陈大佬走的很近,每天搂搂抱抱十分不成体统!于是就被ZZZZone的女朋友给知道了,但是呢,ZZZZone的女朋友是一个热爱画画的温柔又可爱的女子,于是她决定把ZZZZone大卸两块,没错是两块!!

       ZZZZone呢他的长度为 n,并且每个单位长度都有一个相对应的重量,他的小女朋友希望将ZZZZone切成两部分后,两个部分中的最大重量之差的绝对值最大(显然两个部分均不能为空啊),她呢觉得很惆怅,不知道该怎么切最好,所以想让你们来想想办法。

输入描述:

第一行为一个n(2 <= n <= 105),表示ZZZZone的长度,第二行为n个数,表示ZZZZone每个单位长度的重量(0 <= a[i] <= 106)。

输出描述:

输出切成两部分后,每部分的重量的最大值之差的绝对值最大是多少。

示例1

输入

复制

4
3 4 1 6

输出

复制

3

备注:

对于样例:

4

3 4 1 6

那么一共有 3 种切法,分别是:

第一部分为 { 3 }, 第二部分为{ 4,1,6 },此时两部分的最大值之差的绝对值为 3

第一部分为 { 3,4 }, 第二部分为{ 1, 6 },此时两部分的最大值之差的绝对值为 2

第一部分为 { 3,4,1 }, 第二部分为{ 6 },此时两部分的最大值之差的绝对值为 2

所以答案为3.

思路:

emmm。。。。不知道为啥有人说暴力可以过,我们的暴力不一样???

这个数组被拆分成俩部分 , 那包含最大的为一部份。第一个数或最后一个数如果很小 , 那么刚好在第一个或最后一个那儿分

如果第一个数或最后一个数不小 , 那么不论怎么分 , 都至少要大于等于第一个数的大小。

所以,先找到最大的数 , 然后再去判断第一个数和最后一个数的大小 , 减去zui最小的那个就行啦

代码:

#include <iostream>
#include <stdio.h>
using namespace std;
const int maxn = 1e5+8;
int a[maxn];
int main()
{
	int n , op = -99999;
	scanf("%d" , &n);
	for(int i = 0 ; i < n ; i++)
	{
		scanf("%d" , &a[i]);
		if(op < a[i])
		{
			op = a[i];
		 } 
	}
	printf("%d\n" , op - min(a[0] , a[n-1]));
	return 0;
}

 

全部评论

相关推荐

繁华的街道两旁,湿漉漉的下午,两个青涩的脸庞互相张望。宽大卫衣下娇小的她,向我奔来。不约而同的卫衣,斯文的半框眼镜掩饰着一个穷臭屌丝气息。这是我和我牛爱网第一死忠粉兼专属女嘉宾最初的见面。火速恋爱,但是没有所谓的快节奏,相识半年,还是一样的热恋。吃着肉夹馍坐过西安的小三轮洱海边自行车的气球胖吃着她最喜欢的酸酸水果和小乳扇在南山某店爷爷穿孙子衣服,摸肥猫就算我在忙也要抽出时间陪她去吃他喜欢的漂亮饭生活总是平凡,但平凡不平淡还记得见面第一件事儿:“我去上个厕所。”现在早上第一件事儿:“拉*”第一次上我车的她:“我可以坐副驾吗?”现在的她:“老子把jio翘到上面得得挡到你后视镜。”这小孩,虽然花了我...
Stan_蹒跚者:确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务