模拟优先队列 #1-6AC #7-20RE 下载#7本地跑没问题 上传就RE
查看原帖
模拟优先队列 #1-6AC #7-20RE 下载#7本地跑没问题 上传就RE
542472
R_I_C_K_Y_楼主2023/10/4 09:15
#include <iostream>
#include <string.h>
#include <queue>
using namespace std;
//定义
const int MAXN = 100000 + 100;
struct Jiao_Tong_Gong_Ju{
    int Reso;
    int Price;
    int Time;
}JT[MAXN];
struct You_Hui{
    int Start_Time;
    int Up_Limit;
}YH[MAXN];
int n,ans,Head = 0;

//优先队列维护
void Maintain(int Time){
    int i = 0;
    while(Time - YH[i].Start_Time > 45){ Head = i; i++; }
}

int main(){
    //输入&初始化
    scanf("%d",&n);

    for(int i = 0;i < n;i ++) {
        int resolution, P, T;
        scanf("%d%d%d", &resolution, &P, &T);
        JT[i].Reso = resolution;
        JT[i].Price = P;
        JT[i].Time = T;
        if (resolution == 0) {
            YH[i].Up_Limit = P;
            YH[i].Start_Time = T;
            ans += P;
        }
        Maintain(T);
        if(resolution == 1){
            for(int j = Head;j <= i;j ++){
                if(JT[i].Price <= YH[j].Up_Limit && JT[i].Time - YH[j].Start_Time <= 45){
                    YH[j].Up_Limit = 99999999;
                    YH[j].Start_Time = -1000000000 - 100;
                    goto outer;
                }
            }
            ans += P;
        }
        outer:continue;
    }

    //输出
    printf("%d",ans);
}
2023/10/4 09:15
加载中...