救命啊啊啊,为什么样例全过却爆零了
查看原帖
救命啊啊啊,为什么样例全过却爆零了
333145
XiaoJuRuoUP楼主2022/9/25 20:39
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

const int N = 100005;

struct Ticket {
    int p, t;
};

vector<Ticket> ticket;
int n;
int sum = 0;

int main(){
    //freopen("P5661.out", "w", stdout);
    scanf("%d", &n);
    for (int i = 0; i < n; i ++ ){
        int op, p, t;
        scanf("%d%d%d", &op, &p, &t);
        if (op == 0){
            sum += p;
            ticket.push_back({p, t});
            //printf("在第%d分钟花费%d元乘坐地铁\n", t, p);
        }else{
            bool flag = false;
            //printf("在第%d分钟乘坐公交车,价格为%d元\n", t, p);
            for (auto it = ticket.begin(); it < ticket.end(); it ++ ){
                if (t - (*it).t > 45) {/*printf("该券获得时间为%d, 超时,已失效\n", (*it).t); */it = ticket.erase(it);}
                else if ((*it).p < p) /*printf("该券价格仅为%d,价格过高\n", (*it).p)*/;
                else {
                    //printf("抵价成功,优惠券价格为%d元,获得时间为%d\n", (*it).p, (*it).t);
                    it = ticket.erase(it);
                    flag = true;
                    break;
                }
            }
            if (!flag) {sum += p; /*printf("抵价失败,花费%d元\n", p);*/}
        }
    }

    printf("%d\n", sum);

    return 0;
}
2022/9/25 20:39
加载中...