列表

详情


NC21759. 集训队脱单大法:这是一道只能由学姐我自己出数据的水题

描述

        总所不周知!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

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 107ms, 内存消耗: 7408K, 提交时间: 2023-08-12 11:16:37

n=int(input())
m=list(map(int,input().split()))
maxm=0
a=[]
b=[]
a.append(m[0])
b.append(m[-1])
for i in range(1,len(m)-1):
    a.append(max(a[i-1],m[i]))
    b.append(max(b[i-1],m[-i-1]))
maxx=0
for i in range(len(a)):
    maxx=max(maxx,abs(a[i]-b[-1-i]))
print(maxx)

C++ 解法, 执行用时: 11ms, 内存消耗: 540K, 提交时间: 2023-08-12 11:16:07

#include<bits/stdc++.h>
using namespace std;
int main()
{ 
int n,a[100005];
cin>>n;
int maxn=0;
for(int i=0;i<n;i++)
	{
		cin>>a[i];
		maxn=max(a[i],maxn);
	}
cout<<max(maxn-a[0],maxn-a[n-1]); 
}

上一题