题目描述
代码改错: 对n棵树(n<100),有q次操作,每次把L到R之间的所有树砍掉,请问最后还剩几棵树。 例如n=5,q=3。第一次L=1,R=3。砍掉1、2、3,还剩下4、5;第二次L=5,R=5。 砍掉5,还剩下4;第三次L=2,R=3。砍掉2、3,还剩下4;最终还剩下1棵树。
#include <iostream>
using namespace std;
int main()
{
int n, q, l, r, a[100], sum = 0;
cin >> n >> q;
for (int i = 1; i <= n; i++)
{
a[i] = 1;
}
for (int i = 1; i <= q; i++)
{
cin >> l >> r;
for (int j = l; j <= r; j++)
{
a[i] = 0;
}
}
for (int i = 1; i <= n; i++)
{
sum += a[i];
}
cout << sum << endl;
return 0;
}
输入
第一行输入n、q,分别表示n棵树和q次操作。接下来的q行,每行输入两个数,L和R,表示每次把L到R之间的所有树砍掉。
输出
一个整数,表示最后还剩几棵树
样例输入
5 3
1 3
5 5
2 3
样例输出
1