WA求助
查看原帖
WA求助
1056725
zhang_yang_alan楼主2024/8/14 10:51
#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 求大佬帮忙改一下,必关注!!!

2024/8/14 10:51
加载中...