只需要错误的原因
#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;
}