AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 校园
  • 应用
  • 文章
    • 题解
    • 分享
    • 问答
  • 吐槽
  • 登录/注册

AcWing 1934. 贝茜放慢脚步 0.52 AC币

作者: 作者的头像   imnoob ,  2022-01-16 21:32:05 ,  所有人可见 ,  阅读 24


0


#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
#include <cmath>

using namespace std;

priority_queue<int, vector<int>, greater<int>> d;
priority_queue<int, vector<int>, greater<int>> t;

int main()
{
    int N;
    cin >> N;
    while(N --){
        char a;int b;
        cin >> a >> b;
        if(a == 'T')
            t.push(b);
        else d.push(b);
    }
    d.push(1000);
    double ct = 0.0, cd = 0.0;
    int rate = 1;

    while(!d.empty() || !t.empty()){
        bool istime = false;
        if(d.empty())
            istime = true;
        else if(!d.empty() && !t.empty())
            if(t.top() < ct + (d.top() - cd) * rate)
                istime = true;
        if(istime){
            cd += (t.top() - ct) / (double)(rate);
            ct = t.top();
            t.pop();
        }else{
            ct += (d.top() - cd) * rate;
            cd = d.top();
            d.pop();
        }
        rate ++;
    }
    cout << (int)round(ct);
}

0 评论

你确定删除吗?
1024
x

© 2018-2022 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息