外卖优先级
-
知识点:sort()函数
- 头文件:#include<algorithm> - sort(start,end,排序方法) - 适用:数组排序,结构体排序
代码:
#include <bits/stdc++.h>
using namespace std;
int N,M,T;
struct node{
int ts;
int id;
};
bool flag[100005];
node a[100005];
bool cmp(node x,node y){
if(x.id!=y.id)
return x.id<y.id;
else return x.ts<y.ts;
}
int main()
{
cin>>N>>M>>T;
for(int i=1;i<=M;i++) cin>>a[i].ts>>a[i].id;
sort(a+1,a+M+1,cmp);
for(int i=1;i<=M;i++){
int id=a[i].id;
int j=i;
int sum=2;
for(j=i+1;j<=M&&a[j].id==a[i].id;j++){
if(a[j].ts!=a[j-1].ts) sum-=(a[j].ts-a[j-1].ts-1);
if(sum<0) sum=0;
if(sum<=3&&flag[id]) flag[id]=false;
sum+=2;
if(sum>5&&flag[id]==0) flag[id]=true;
}
sum-=(T-a[j-1].ts);
if(sum<=3&&flag[id]) flag[id]=false;
i=j-1;
}
int num=0;
for(int i=1;i<=N;i++) if(flag[i]) num++;
cout<<num<<endl;
return 0;
}