1241. 外卖店优先级
题目链接https://www.acwing.com/problem/content/1243/
题目:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<utility>
using namespace std;
int n,m,t;
pair<int ,int > q[100010];
int ready[100010],a[100010],b[100010];
int main(){
cin>>n>>m>>t;
int x,y;
for(int i=0;i<m;i++){
scanf("%d%d",&x,&y);
q[i]=make_pair(x,y);
}
sort(q,q+m);
for(int i=0;i<m;i++){
if(b[q[i].second]<q[i].first){
a[q[i].second]-=(q[i].first-b[q[i].second]-1);
}
if(a[q[i].second]>5) ready[q[i].second]=1;
else if(a[q[i].second]<=3) ready[q[i].second]=0;
if(a[q[i].second]<0) a[q[i].second]=0;
a[q[i].second]+=2;
if(a[q[i].second]>5) ready[q[i].second]=1;
b[q[i].second]=q[i].first;
}
int ans=0;
for(int i=1;i<=n;i++){
if(b[i]<t){
a[i]-=(t-b[i]);
if(a[i]<=3) ready[i]=0;
}
}
for(int i=1;i<=n;i++){
if(ready[i]) ans++;
}
cout<<ans;
return 0;
}
之前写的代码https://blog.csdn.net/weixin_46028214/article/details/113407908