CSP-J 2019 公交换乘

复制代码
#include <bits/stdc++.h>
using namespace std;
int main() {
    long n,sum = 0;//次数 总钱数 
    cin>>n;//输入 
    long x,m,s;//方式 价格 时间 
    vector<long> m1,s1;//存储地铁的优惠券 
    bool h;//用来记录能否使用优惠券 
    for(long i = 0;i<n;i++){
        cin>>x>>m>>s;//输入 
        if(x==0){
            m1.push_back(m);//加入优惠券的钱数 
            s1.push_back(s);//加入优惠券的时间 
            sum += m;//加上钱 
        }else{
            h = false;//h为false说明不能使用优惠券 
            for(int j = 0;j<m1.size();j++){
                if(m<=m1[j] && s-s1[j]<=45){
                    h = true;//h为true说明能使用优惠券 
                    m1.erase(m1.begin()+j);//把用过的优惠券删除,以减少时间复杂度
                    s1.erase(s1.begin()+j);//把用过的优惠券删除,以减少时间复杂度
                    break;//打破循环 
                }
            }
            if(!h){//判断能否使用优惠券 
                sum += m;//加上钱 
            }
        }
        if(s-s1[0]>45 && !m1.empty()){//判断优惠券是否过期 
            m1.erase(m1.begin());//过期就删除,以减少时间复杂度 
            s1.erase(s1.begin());//过期就删除,以减少时间复杂度
        }
    }
    cout<<sum;//输出 
    return 0;
}
复制代码

 

posted @   王一行(小号)  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示