12分求助
查看原帖
12分求助
966082
huangmingyi楼主2023/9/21 20:11

只需要错误的原因

#include<bits/stdc++.h>
using namespace std;
const int N=100005;

struct node{
	int start,over;
}a[N];

cmp(node x,node y){
	if(x.start!=y.start){
		return x.start>y.start
   }else if(x.over!=y.over){
   		return x.over>y.over
   }
}

int n,diff[N],startmax=0,overmax=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].start>>a[i].over;
	}
	int maxzc1=0,maxzc2=0;
	for(int i=1;i<=n;i++){
		if(i==1){
			maxzc1+=a[i].over-a[i].start;
			startmax=max(startmax,maxzc1);
		}else{
			if(a[i-1].over<a[i].start){
				maxzc2+=abs(a[i].start-a[i-1].over);
				overmax=max(overmax,maxzc2);
				maxzc1=0;
			}else if(a[i-1].over>=a[i].start && a[i].over-a[i-1].over>=0){
				maxzc1+=a[i].over-a[i-1].over;
				startmax=max(startmax,maxzc1);
				maxzc2=0;
			}
		}
	}
	cout<<startmax<<" "<<overmax;
	return 0;
}
2023/9/21 20:11
加载中...