P8685 [蓝桥杯 2019 省 A] 外卖店优先级 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+10;
int n;
int res=0;
vector<int>v[N];
int main()
{
ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
int m,t;
cin>>n>>m>>t;
for(int i=1;i<=m;i++)
{
int ts,id;
cin>>ts>>id;
v[id].push_back(ts);
}
for(int i=1;i<=n;i++)
{
sort(v[i].begin(), v[i].end());
int cnt = 0;//优先级指数
int lt = 0;//上一次收到订单的时刻
bool flag;//判断是否在优先缓存中
for (auto j: v[i])
{
int tep=j-lt-1;//与上一次收到订单的时刻的时间间隔
if(j==lt)//判断是否有相同时刻收到多个订单
tep=0;
cnt-=tep;
if(cnt<0)//优先级最小为0
cnt=0;
if(cnt<=3)
flag=false;
cnt+=2;
if(cnt>5)
flag=true;
lt=j;//更新上一次收到订单的时间
}
if(lt!=t)//最后收到订单的时刻不是截止时刻,处理时间差值
cnt-=t-lt;
if(flag&&cnt>3)
res++;
}
cout<<res;
return 0;
}