求解答,补全的地方要填什么?

求解答
安排教室 学校仅有的一间社团活动教室需要同学申请通过后才能使用,同一时段内,只有一个社团可以使用社团活动教室。

有 nn 个社团分别提出了申请,每个社团想使用的时段都是连续的,第 ii 个社团申请的使用时段为从第 a_ia i节课上课时到第 b_ib i 节课下课时的这段时间。

显然,如果有两个社团的申请时段有重合,那么他们的申请不可能都被通过。现在,由你来决定每个申请是否被通过,问最多有多少个社团能够使用教室。
输入格式
从标准输入读入数据。

第一行输入一个正整数 nn(n\le1000n≤1000)。

接下来 nn 行,每行输入两个正整数 a_i,b_ia
i

,b
i

(a_i\le b_i\le 10^6a
i

≤b
i

≤10
6
)。

输出格式
输出到标准输出。

输出一个整数,表示最多有多少个社团能够使用教室。
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
int n;
struct Seg{
int a, b;
} c[N];
bool cmp(Seg x, Seg y){
/【请补全】/
}
int main() {
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d%d", &c[i].a, &c[i].b);
sort(c + 1, c + n + 1, cmp);

int ans = 0, lim = 0;
for(int i = 1; i <= n; ++i){
    if(/*****【请补全】*****/){
        ++ans;
        /*****【请补全】*****/
    }
}
printf("%d\n", ans);
return 0;

}

解答对了肯定采纳


#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
int n;
struct Seg
{
    int a, b;
} c[N];
bool cmp(Seg x, Seg y)
{
    return x.b < y.b;
}
int main()
{
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i)
        scanf("%d%d", &c[i].a, &c[i].b);
    sort(c + 1, c + n + 1, cmp);

    int ans = 0, lim = 0;
    for (int i = 1; i <= n; ++i)
    {
        if (c[i].a >= lim)
        {
            ++ans;
            lim = c[i].b;
        }
    }
    printf("%d\n", ans);
    return 0;
}

你倒是说要实现什麽功能啊