zoj 3317
来源:互联网 发布:安全动画预防网络诈骗 编辑:程序博客网 时间:2024/06/11 14:35
注意输入的数据可能是乱序的,自己要按 check in 的顺序进行排序~
#include<stdio.h>#include<stdlib.h>struct renter{int in;int leave;int num;int room;}r[100];int cmp1(const void *a,const void *b){return (*(struct renter *)a).in> (*(struct renter *)b).in ? 1 : -1;}int cmp2(const void *a,const void *b){return (*(struct renter *)a).num > (*(struct renter *)b).num ? 1 : -1;}int main(){int m,n,i,j,room[100];while(scanf("%d%d",&n,&m),!(n==0&&m==0)){for(i=0;i<n;i++){scanf("%d%d",&r[i].in,&r[i].leave); //读入每个人的入住时间和离开的时间r[i].num=i; //记录数据输入时顺序,输出时还要按这个顺序r[i].room=0;}qsort(r,n,sizeof(r[0]),cmp1); //按check in 排序for(i=0;i<m;i++)room[i]=0; //初始化for(i=0;i<n;i++){for(j=0;j<m;j++){if(room[j]<=r[i].in) //room[] 中记录的是入住旅客离开的时间{r[i].room=j+1; //记录该旅客住的房间号room[j]=r[i].leave; //更新 room[i] 的值break;}}} qsort(r,n,sizeof(r[0]),cmp2);for(i=0;i<n;i++)printf("%d\n",r[i].room);}return 0;}/*这题过得真不容易,题意没理解透,给出的的数据可能是乱序的,需要自己按renter的check in 顺序排序后,分配房间;另外一点,sort还是不会用啊!!!!!!!*/
- zoj 3317
- ZOJ-3317
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- 杭电 hdu 2066 一个人的旅行
- Spring MVC之MultiActionController
- OpenCV Tutorial 3 - Chapter 4
- HashMap和ConcurrentHashMap浅析
- 菜鸟之驱动开发6
- zoj 3317
- OpenCV Tutorial 4 - Chapter 5
- HDU 3555 Bomb (数位DP)
- 2个listview的focus焦点的跳转问题
- ie下css两侧边框时有时无
- ubuntu下安装mcrypt
- poj 1331 Multiply
- Symbian 根据手机号码查电话薄姓名
- 经典语录