小米嵌入式软件实习笔试编程题2

《嵌入式软件开发笔试与面试手册》https://blog.nowcoder.net/zhuanlan/jvN8gj

《嵌入式软件笔试-2023年真题汇总》https://blog.nowcoder.net/zhuanlan/0oDWVm

移山

天帝被愚公的诚心感动,命令手下的仙人帮助移山。

然而仙人的法术也是有局限性的,山势连绵起伏,法术并不能直接把山移走。每次施法,可以把一段连续区域的山头移走相同高度。现在愚公想知道什么时候会有至少一个山头高度小于等于0

给出一个长度为n的数组a1,……,an,和m表示山头的高度和可以施法的次数,每次施法还会给出左右端点L,R,和高度h,表示将aL,aR,依次减去h。问在哪次操作之后存在一个ai0?(数据保证这样的时刻存在。)

 

输入描述

第一行两个数nm,表示山头数量和施法次数。

第二行n个数,分别表示第a1,,an,即第一个山头到第n个山头的高度。

接下来m行,每行三个数L,R,h,表示一次施法的具体参数。

1n,m105次方,1h,ai109次方,1LRn,均为整数

输出描述

输出一个整数,表示答案。数据保证答案存在。

 

样例输入

5 4

6 5 3 4 6

1 3 2

4 4 2

3 5 1

1 5 6

样例输出

3

提示

第一次操作之后山头变成4 3 1 4 6

第二次操作之后山头变成4 3 1 2 6

第三次操作之后山头变成4 3 0 1 5

其中第三个山头高度小于等于了0,可见,在第三次施法之后有一个山头的高度变成了0

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;
    vector<int> mountains(n);
    for (int i = 0; i < n; i++)
    {
        cin >> mountains[i];
    }
    for (int op = 1; op <= m; op++)
    {
        int l, r, h;
        cin >> l >> r >>

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要发布2024年(2025届)嵌入式软件开发相关岗位笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论
mark
点赞 回复 分享
发布于 04-21 11:47 广东
感谢分享
点赞 回复 分享
发布于 04-22 19:13 广东

相关推荐

评论
2
11
分享
牛客网
牛客企业服务