这道题是从 0 到 $L+1$,而不是 1 到 $L+1$。我帮你改了一下A了:
```
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[1000005],b[1000005];
template <typename TM>
void in(TM &n){
char c=getchar();
int f=1;
while ((c>'9' || c<'0') && c!='-') c=getchar();
if(c=='-') f=-1, c=getchar();
for(n=0; c>='0'&&c<='9'; c=getchar()) n=n*10+c-'0';
n*=f;
}
int main(){
ll l,n;
in(l),in(n);
ll m,x,y;
for(int i=0;i<=l+1;i++){
a[i]=2;
}
while(n--){
in(m),in(x),in(y);
if(m==0){
for(int i=x;i<=y;i++){
if(a[i]==0) b[i]++;
a[i]=1;
}
}
if(m==1){
for(int i=x;i<=y;i++){
if(a[i]==1) a[i]=0;
}
}
}
ll ans1=0,ans2=0;
for(int i=0;i<=l+1;i++){
if(a[i]==0) ans1++;
ans2+=b[i];
}
printf("%lld\n%lld",ans1,ans2);
return 0;
}
```
by lovely_fcukh @ 2023-07-16 21:52:47
@[ahsmile](/user/744820) 如果有帮助的话可以关注哦,这样下次就可以直接私信问问题更方便~
by lovely_fcukh @ 2023-07-16 21:54:15
@[lovely_fcukh](/user/335786) 过了,谢谢
by Eternal_SZC @ 2023-07-16 21:58:24