#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=500010;
int n,a[N],b[N],c[N],d[N];
signed main(){
cin >> n;
for(int i=1;i<=n;i++) cin >> a[i];
for(int i=1;i<=n;i++) cin >> b[i];//输入
for(int i=1;i<=n;i++){
if (i%2==1){
c[i]=max(a[i],b[i]);
}else{
c[i]=min(a[i],b[i]);
}
}//取c的山峰,奇数取最大,偶数取最小
for(int i=1;i<=n;i++){
if (i%2==1){
d[i]=min(a[i],b[i]);
}else{
d[i]=max(a[i],b[i]);
}
}//反之
int m1=0,m2=0;
for(int i=1;i<=n;i++){
if (c[i]>c[i-1]&&c[i]>c[i+1]) m1++;
}//判断有c几座山峰
for(int i=1;i<=n;i++){
if (d[i]>d[i-1]&&d[i]>d[i+1]) m2++;
}//判断d有几座山峰
if (m1>m2){
sort(c+1,c+n+1);
cout << m1<<endl<<c[n]-c[1];
}else{
sort(d+1,d+n+1);
cout << m2<<endl<<d[n]-d[1];
}//比较,输出最大峰数,以及最大差值
return 0;
}
https://www.luogu.com.cn/record/172549450 求大佬帮忙改一下,必关注!!!