ZOJ 3317 Murder in Restaurant
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3727
值得注意的是,这个题目的input数据还需要先按check in进行排序。
#include<iostream> using namespace std; class renter { public: int in; int leave; int rnum; }r[104]; int main() { int n,m; int room[104],index[104]; while(cin>>n>>m) { if(n==0&&m==0) break; for(int i=0;i<104;i++) { index[i]=i; } for(int i=0;i<=m;i++) { room[i]=0; } for(int i=1;i<=n;i++) { cin>>r[i].in>>r[i].leave; r[i].rnum=0; } for(int i=1;i<n;i++) { for(int j=i+1;j<=n;j++) { if(r[index[i]].in>r[index[j]].in) { int temp=index[i]; index[i]=index[j]; index[j]=temp; } } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(room[j]<=r[index[i]].in) { r[index[i]].rnum=j; room[j]=r[index[i]].leave; break; } } } for(int i=1;i<=n;i++) { cout<<r[i].rnum<<endl; } } return 0; }