【题意】
有一家乒乓球的店,营业时间为8:00-21:00。现在已知一天要接待的客户对数,每对客户的抵达时间、使用桌子时间和是否为VIP,然后是K张桌子,M张VIP桌和M张VIP桌的编号。要求按接待时间输出每对被服务的客户的抵达时间、开始服务时间和等待时间,然后输出每张桌子接待的客户的对数。
【题解】
需要注意的是:
①所有的客户的抵达时间在8:00-21:00没错,但是只有当开始服务时间早于21:00时才会被接待,需要输出信息。
②当客户的使用时间超过2小时,按两小时算,因为最多使用两小时。
③当有空闲的VIP桌子和普通桌子时,VIP用户首先优先选择VIP桌,再选择编号小的。当只有空闲的普通桌子时,VIP客户和普通客户都优先选择编号最小的空闲桌子。
④等待时间按分钟四舍五入(也有可能是因为我读错以为向上取整所以觉得坑)。
然后按题意慢慢模拟即可。
【代码】
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
struct p{
int date,t,is,ser=0;
}f[10005];
bool cmp(p a,p b){
return a.date<b.date;
}
bool cmp2(p a,p b){
return a.ser<b.ser;
}
int sta[105]={0};
int c[105]={0};
int vis[105]={0};
queue <int> q[3];
int m