题解 CF31C 【Schedule】
题目要使其余组的课程没有两个时间段相交
上代码。
#include<bits/stdc++.h>
using namespace std;
int l[5005],r[5005],s=0,sum[5005];
int n;
vector<int> ans;
int main()
{
cin>>n;
for(int i=0;i<n;i++)//输入
{
cin>>l[i]>>r[i];
sum[i]=0;
}
for(int i=0;i<n;i++)//要双重
for(int j=0;j<i;j++)
{
if(l[i]<r[j]&&l[j]<r[i])//判断是否要取消
{
sum[i]++;
sum[j]++;
s++;//计数
}
}
for(int i=0;i<n;i++)
if(sum[i]==s)
ans.push_back(i+1);
cout<<ans.size()<<endl;//输出
for(int i=0;i<ans.size();i++)
cout<<ans[i]<<" ";
}