AcWing 1241. 外卖店优先级(c++暴力,蓝桥杯测评可得80分)
原题链接
简单
作者:
AC_Tan
,
2025-03-24 15:48:51
·湖北
,
所有人可见
,
阅读 2
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const long long c = 100000;
const int N = 1e5+10;
ll a[N],b[N];
bool sroce[N];
int main()
{
int n,m,t,res = 0;
cin>>n>>m>>t;
int cnt = 0;
while(m--)
{
int ts,id;
cin>>ts>>id;
a[cnt++] = id*c+ts;
}
sort(a,a+cnt);
for(int i =1;i<=n;i++)
{
for(int j = 1;j<=t;j++)
{
int q = i*c+j,l=0,r=cnt-1,mid = 0;
while(l<r)
{
mid = l+r>>1;
if(a[mid]>=q) r = mid;
else l = mid + 1;
}
if(a[r]==q)
{
int count = 1;
for(int k = r+1;k<cnt;k++)
{
if(a[k]!=q) break;
else count++;
}
b[i]+=count*2;
}
else {if(b[i]-1>=0)b[i]-=1;}
if(b[i]>5) sroce[i] = 1;
if(b[i]<=3) sroce[i] = 0;
}
}
for(int i = 1;i<=n;i++)
if(sroce[i]) res++;
cout<<res<<endl;
return 0;
}