教室规划问题
测试数据 12组
12 0 3 2 5 4 7 3 8 6 10 8 10 9 11 11 15 12 15 10 13 13 17 15 18
代码:
#include<iostream> #include<algorithm> using namespace std; struct sa{ int x,y; }data[100]; int cmp(const sa &a,const sa &b){ return a.y<b.y; } int main() { int n,sum; sa tmp; while(cin>>n){ for(int i=0;i<n;i++) cin>>data[i].x>>data[i].y; sort(data,data+n,cmp); sum=1; tmp=data[0]; for(int i=1;i<n;i++) { if(tmp.y<=data[i].x){ sum++; tmp=data[i]; } } cout<<sum<<endl; } }
按照结束的时间进行排列,当后一个任务开始时间大于前一个任务的结束时间,sum++