啊啊啊这题有人帮我看看嘛
  • 板块灌水区
  • 楼主Cokewithice
  • 当前回复16
  • 已保存回复16
  • 发布时间2022/11/29 19:44
  • 上次更新2023/10/27 00:59:07
查看原帖
啊啊啊这题有人帮我看看嘛
607528
Cokewithice楼主2022/11/29 19:44
题目描述
给出一组整数,它的前x个数称为它的前缀,前缀最值差指的是:数组前x个数中最大值和最小值的差,这个问题到也难不倒小明。
但现在有q个问题询问,要求算出每个问题的前缀最值差。这样工作量就太大了。你有什么办法吗?
输入
第一行有一个正整数N,表示给出的这组正整数的个数。
第二行有N个正整数ai 。
第三行有一个正整数q,表示有q个询问。
第四行有q个正整数xi,分别表示要求前xi个数中最大值和最小值的差。
输出
输出,每个询问的答案。
样例输入 Copy
6
1 3 1 7 2 4 
3
3 2 6
样例输出 Copy
2 2 6
提示
【数据范围】
  50%数据, 1<= N<=1000, q<=1000, ai<1000,1<=xi<=N;
100%数据, 1<= N<=1000000, q<=1000000, ai<1000000000,1<=xi<=N; 
//程序名:新的C++程序
//作者: 
#include<bits/stdc++.h>
   #include<string>    
using namespace std;  
int n,a[100005],q,x[100005],maxx=0,minn=100000,sum=0;
int main()                                
{
cin>>n;
for(int i=1;i<=n;i++)
{
	cin>>a[i];
}
cin>>q;
for(int j=1;j<=q;j++)
{
	cin>>x[j];
	for(int i=1;i<=x[j];i++)
	{
		if(a[i]>maxx)maxx=a[i];
		if(a[i]<minn)minn=a[i];
	}
	sum=maxx-minn;
	
	cout<<sum<<" ";
	sum=0;}



	return 0;
	
}               

2022/11/29 19:44
加载中...