题目描述
大家发现了不远处,有q只工蚁在修补被雨水破坏的蚁穴,蚁穴破损的部分可以从1到n编号,第i只工蚁负责修复编号Li到Ri的部分,请你编写一个程序,计算一下去掉一只工蚁之后,剩下的q-1只工蚁最多能修复的破损部分的数量。
#include <iostream>
using namespace std;
int n, q;
int d[10005], cnt[10005], c1[10005], tot, Min;
int L[5005], R[5005];
int main()
{
cin >> n >> q;
for (int i = 1; i <= q; i++)
{
cin >> L[i] >> R[i];
d[L[i]]++;
d[R[i] + 1]--;
}
for (int i = 1; i <= n; i++)
{
cnt[i] = cnt[i - 1] + d[i];
if (cnt[i] > 0)
{
tot++;
}
if (cnt[i] == 1)
{
——————————
}
else
{
——————————
}
}
Min=tot;
for(int i=1;i<=q;i++)
{
————————————————
}
cout<<tot-Min;
return 0;
}
输入
第一行两个整数n和q。(1≤n≤10000,1≤q≤5000)
接下来q行,每行两个整数,第i+1行的两个整数分别表示Li和Ri。
输出
一个整数,表示剩下的q-1只工蚁最多能修复的破损部分的数量。
样例输入
4 3
1 1
2 2
3 4
样例输出
3