Mark1277 2023-05-27 13:06 采纳率: 100%
浏览 122
已结题

修正成绩(2121)

某校期中考试结束,学校采用一台阅卷机阅卷。teacher在检查大家的成绩时,发现阅卷机阅卷有误,因此不得不手动调整大家的成绩。

现已知有 n 个同学成绩,需要做 p 次调整,每次调整操作都是将第
x 个同学到第 y 个同学每位同学成绩都加上 z 分。
请问:经过调整后,全班同学成绩的最低分是多少分?
输入
第一行有两个整数 ,n,p,代表学生数与增加分数的次数。
第二行有
n 个数,a1∼a n
,代表各个学生的初始成绩。接下来 p 行,每行有三个数,x,y,z,代表给第 x 个到第 y 个学生每人增加 z 分。

数据范围
n≤100000,p≤n,1≤x,y≤n,学生初始成绩≤100,z≤100。

输出
输出仅一行,代表更改分数后,全班的最低分。

样例
输入复制
3 2
1 1 1
1 2 1
2 3 1
输出复制
2
怎么写?

  • 写回答

2条回答 默认 最新

  • 创意程序员 2023-05-27 13:16
    关注

    可参考以下代码:

    #include <stdio.h>
    
    int main() {
        int n, p;
        scanf("%d %d", &n, &p); // 输入学生数和增加分数的次数
    
        int scores[n];
        for (int i = 0; i < n; i++) {
            scanf("%d", &scores[i]); // 输入学生的初始成绩
        }
    
        for (int i = 0; i < p; i++) {
            int x, y, z;
            scanf("%d %d %d", &x, &y, &z); // 输入每次调整的操作
    
            // 将第x个到第y个学生每人增加z分
            for (int j = x - 1; j < y; j++) {
                scores[j] += z;
            }
        }
    
        // 查找最低分
        int minScore = scores[0];
        for (int i = 1; i < n; i++) {
            if (scores[i] < minScore) {
                minScore = scores[i];
            }
        }
    
        printf("%d\n", minScore);
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月4日
  • 已采纳回答 5月27日
  • 创建了问题 5月27日

悬赏问题

  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。