#include<bits/stdc++.h>
using namespace std;
int main(){
int l,m;
cin>>l>>m;
int a[105];
for(int i=0;i<m*2;i++){
cin>>a[i];
}
int p=0;
int f=1,c=0 ;
for(int i=2;i<m*2;i++){
if(f==1){
if(a[i]<a[i-1]&&a[i+1]>a[i-2]){
c+=a[i-1]-a[i];
}
p=1;
}
else{
c+=a[i]-a[i+1];
p=0;
}
if(f==2){
f=0;
}
f++;
}
if(p==0){
c=c+(a[0]+a[1]);
}
cout<<l-c<<endl;
cout<<c;
return 0;
}
你输入的数组最大下标为m*2-1,但你后面的循环中,出现了a[i+1],显然当i=m*2-1时,a[i+1]是越界的。所以后面的for循环应该i<m*2-1