首页 > 其他分享 >CF1760C

CF1760C

时间:2024-01-20 17:57:17浏览次数:34  
标签:CF1760C int 最大值 大值 mx2 mx1 include

题意

\(T\) 组数据,每组数据给定一个长度为 \(n\) 的序列 \(s\)。求出每个数与最大值的差(最大值本身除外),以及最大值和次大值的差(最大值的位置),按照原来的顺序输出。

做法

模拟题,十分简单,只需对原序列求最大值和次大值即可,然后再按位置输出。

Code

具体实现细节见代码。

#include <iostream>
#include <cstdio>
using namespace std;
int n,a[1000001];
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		int mx1=0,mx2=0;
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			if(a[i]>mx1) mx2=mx1,mx1=a[i];//注意当最大值要被更新时,要先将原来的最大值赋值给次大值
			else if(a[i]>mx2) mx2=a[i];
		}
		for(int i=1;i<=n;i++)
		{
			if(a[i]==mx1) cout<<mx1-mx2<<' ';
			else cout<<a[i]-mx1<<' ';
		}
		cout<<endl;
	}
	return 0;
}

标签:CF1760C,int,最大值,大值,mx2,mx1,include
From: https://www.cnblogs.com/-lilong-/p/17976853

相关文章