题解 | #小红的小踏前斩#

小红的小踏前斩

https://www.nowcoder.com/practice/aa428da6310a4e889bad5bae59f89025

#include <algorithm>
#include <climits>
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

int main() {
    int n;
    cin >> n;
    int temp = n;
    vector<int> ret(n);
    for (auto& num : ret) {
        cin >> num;
    }
    int minNum = ret[0] > ret[1] / 2 ? ret[0] : (ret[1] + 1) / 2;
    int t1, t2;
    for (int i = 0; i < n - 2; i++) {
        if (ret[i + 1] > ret[i + 2] / 2) {
            t2 = (ret[i + 2] + 1) / 2;
            t1 = (ret[i + 1] - t2 + 1) / 2;
            minNum = min(t1 + t2, minNum);
        } else {
            t2 = (ret[i + 2] + 1) / 2;
            minNum = min(t2, minNum);
        }
    }
    int first = ret[0];
    sort(ret.begin(), ret.end());
    if (ret[0] != first && ret[1] != first) {
        minNum = min((ret[0] + 1) / 2 + (ret[1] + 1) / 2, minNum);
    } else if (ret[0] == first) {
        minNum = min(min(first + (ret[1] + 1) / 2, (ret[1] + 1) / 2 + (ret[2] + 1) / 2),
                     minNum);
    } else if (ret[1] == first) {
        minNum = min(min(first + (ret[0] + 1) / 2, (ret[0] + 1) / 2 + (ret[2] + 1) / 2),
                     minNum);
    }
    cout << minNum << endl;

}


全部评论

相关推荐

点赞 评论 收藏
分享
昨天 22:30
吉林大学 Java
同专业学长学姐,去互联网大厂的起薪&nbsp;15k+,去国企&nbsp;IT&nbsp;岗的也有&nbsp;12k+,就连去中小厂的都基本&nbsp;13k&nbsp;起步😤&nbsp;我投的传统行业技术岗,拼死拼活拿到&nbsp;1Woffer,本来还挺开心,结果逛了圈牛客直接破防,同是校招生,行业差距怎么就这么大啊!
喵喵喵6_6:应该哪里不对吧,大厂都是20k以上的,10k那种对于985本的学生基本就是点击一下过了笔试就送的,我前两天刚拿了一个11k,笔试完第2天就打电话了,非科班。坏消息是c++岗开这么低真是刷新认知了
校招生月薪1W算什么水平
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务