5682 次大值
囧囧ing
这个题用暴力肯定能拿40分
#include <iostream>
#include <algorithm>
#include <cstring>
#define N 300000
using namespace std;
int n;
int a[N+5];
int main()
{
cin >> n;//定义n
for(int i = 1;i <= n;i ++){
cin >> a[i];//读入n个整数
}
sort(a + 1,a + 1 + n);//排序
n = unique(a + 1,a + 1 + n) - a - 1;//去重
a[0] = 0;
if(n <= 1)
{
cout << "-1";//若去重大于两个则输出-1
}
else
{
cout << max(a[n-2],a[n] % a[n-1]) << endl;
}//取每一次最大的
return 0;
}
这是一个C++程序,用于处理输入的整数数组,首先进行排序,然后去重,并在数组长度小于等于1时输出-1,否则找出数组中第二大的数与最后一个数的最大公约数并输出。程序利用了排序、去重和最大值查找等算法技巧。
475

被折叠的 条评论
为什么被折叠?



