请将您的这一部分代码
for(int i=1;i<=2*n;i++){ int maxr=i;//int maxr=1也是错误的写法 while(maxr<=2*n&&a[maxr].l<=a[i].r) maxr++; s[i][0]=maxr-1; }
改为
int maxr=1; for(int i=1;i<=2*n;i++){ while(maxr<=2*n&&a[maxr].l<=a[i].r) maxr++; s[i][0]=maxr-1; }
因为这个maxr具有单调性,不要重复修改