加油!!
2023-10-06 16:33:53
发布于:广东
9阅读
0回复
0点赞
#include <iostream>
using namespace std;
int n,l = 49,sum;
struct ride{
bool type;
int price,time;
}t[1000010];
struct dis{
int t = -1 , mon = -1;
}dis[50];
int main(){
cin >> n;
for(int i = 0 ; i < n ; i++){
cin >> t[i].type >> t[i].price >> t[i].time;
bool flag = 0;
while(l < 49 && t[i].time - dis[49].t > 45){
for(int k = 48 ; k > l ; k--){
dis[k+1].t = dis[k].t;
dis[k+1].mon = dis[k].mon;
}
dis[l+1].t = -1;
dis[l++].mon = -1;
}
if(!t[i].type){
sum += t[i].price;
dis[l].t = t[i].time;
dis[l--].mon = t[i].price;
}
else{
for(int j = 49 ; j > l ; j--){
if(t[i].price <= dis[j].mon){
flag = 1;
for(int k = j-1 ; k > l ; k--){
dis[k+1].t = dis[k].t;
dis[k+1].mon = dis[k].mon;
}
dis[l+1].t = -1;
dis[l++].mon = -1;
break;
}
}
if(!flag)
{
sum += t[i].price;
}
}
}
cout << sum;
return 0;
}
这里空空如也
有帮助,赞一个