版权声明:欢迎转载,转载请注明出处,如有错误,还望指出,谢谢 博客地址:https://blog.csdn.net/lanyanzhiji123asd https://blog.csdn.net/lanyanzhiji123asd/article/details/88074783
题目链接: http://www.51nod.com/Challenge/Problem.html#!#problemId=1428
排序之后
用vector容器模拟教室,每次记住教室使用结束时间
然后每次都找一个可以使用的教室
如果都有冲突就重新开一个教室
最后输出容器的size就行
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<string>
#include<vector>
#define ll long long
using namespace std;
struct node
{
int be,en;
}mp[10005];
vector<int>ans;
bool cmp(node a,node b)
{
if(a.be==b.be)
return a.en<b.en;
return a.be<b.be;
}
int main()
{
int n,i,j;
while(cin>>n)
{
for(i=0;i<n;i++)
{
cin>>mp[i].be>>mp[i].en;
}
if(n==0)
{
cout<<"0"<<endl;
continue;
}
sort(mp,mp+n,cmp);
ans.push_back(mp[0].en);
for(i=1;i<n;i++)
{
for(j=0;j<ans.size();j++)
{
if(mp[i].be>=ans[j])
{
ans[j]=mp[i].en;
break;
}
}
if(j==ans.size())
ans.push_back(mp[i].en);
sort(ans.begin(),ans.end());
}
cout<<ans.size()<<endl;
}
}