非官方题解 | 公交换乘
2025-10-02 16:38:39
发布于:浙江
11阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
struct node{
long long price,time;
bool flag=false;
};
long long n,ans=0,l=0,r=0;
node p[100005];
int main(){
cin>>n;
for(long long i=1;i<=n;i++){
long long way,price,time;
cin>>way>>price>>time;
if(way){
while(l<r&&p[l].time<time){
l++;
}
bool flag=false;
for(long long j=l;j<=r;j++){
if(p[j].price>=price&&p[j].flag==false){
flag=true;
p[j].flag=true;
break;
}
}
if(!flag){
ans+=price;
}
}
else{
ans+=price;
p[r].time=time+45;
p[r++].price=price;
}
}
cout<<ans;
return 0;
}
这里空空如也







有帮助,赞一个