Stay Hungry,Stay Foolish!

C - Ideal Holidays

C - Ideal Holidays

https://atcoder.jp/contests/abc347/tasks/abc347_c

 

思路

将所有延迟计划时间 % a+b 映射到 区间 [0, a+b]

然后对映射数组排序,

统计最大间距(最大间距可以被安排到  工作日 b),

如果最大间距 大于 b, 则所有延迟计划可以被安排到 假期

 

Code

复制代码
int n, a, b;
vector<int> d;

int main()
{
    cin >> n >> a >> b;

    int modula = a+b;
    for(int i=0; i<n; i++){
        int temp;
        cin >> temp;
        
        temp %= modula;
        
        d.push_back(temp);
    }

    sort(d.begin(), d.end());

    int maxseg = -1;
    for(int i=1; i<d.size(); i++){
        maxseg = max(maxseg, d[i]-d[i-1]-1);
    }

    maxseg = max(maxseg, (a+b - d[d.size()-1] + d[0]-1));

    if (maxseg >= b){
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }

    return 0;
}
复制代码

 

posted @   lightsong  阅读(174)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2021-03-30 make words counter for image with the help of paddlehub model - [camera support]
2020-03-30 kubernetes intro
2019-03-30 D3 learning notes
2019-03-30 前端开发IDE VSCode + live preview
千山鸟飞绝,万径人踪灭
点击右上角即可分享
微信分享提示