社区讨论
P8685 外卖店优先级 70分 求助。。。
灌水区参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m1u1frk3
- 此快照首次捕获于
- 2024/10/04 09:19 去年
- 此快照最后确认于
- 2024/10/04 10:54 去年
CPP
#include <bits/stdc++.h>
using namespace std;
const int maxx = 100100;
struct node{int ts;int id;}shop[maxx];
int pri[maxx][2],temp[maxx];
int n,m,t,timee,cnt,num;
vector <int> prishop;
bool cmp(node a,node b){
return a.ts < b.ts;
}
int main(){
cin >> n >> m >> t;
for(int i = 1;i <= m;i++){
int s,d;
cin >> s >> d;
if(pri[d][0] == 0) num++;
pri[d][0] = 1;
shop[++cnt].ts = s;
shop[cnt].id = d;
}
sort(shop,shop + cnt + 1,cmp);
int back = 1;
for(timee = 1;timee <= t;timee++){
for(int i = 1;i <= num;i++) temp[i] = 0;
for(int i = back;i <= cnt;i++){
if(shop[i].ts == timee){
pri[shop[i].id][1] += 2;
temp[shop[i].id] = 1;
}else {
back = i;
break;
}
}
for(int i = 1;i <= num;i++){
if(temp[i] != 1 && pri[i][1] != 0) pri[i][1]--;
if(pri[i][1] > 5){
auto it = std::find(prishop.begin(),prishop.end(),i);
if(it == prishop.end()) prishop.push_back(i);
}
if(pri[i][1] <= 3){
auto it = std::find(prishop.begin(),prishop.end(),i);
if(it != prishop.end()) prishop.erase(it);
}
}
}
cout << prishop.size();
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...