C++ 代码实现:语文成绩统计
C++ 代码实现:语文成绩统计
题目背景
语文老师要给大家报成绩了。但是他很喜欢卖关子。
题目描述
班级里有学号为 1 ~ n 的 n 名同学。
语文老师的公布成绩方法是这样的:
- 一开始所有同学的分数都是 0 分。
- 他会增加 m 次分数。每一次,他会说出三个数字 l, r, x,表示学号从 l 到 r 的同学分数增加了 x。
小西瓜的学号是 k,但是他每次都算不清自己的成绩到底是多少,小西瓜向你求助,希望你能帮他算出他的语文成绩。
输入格式
第一行有两个整数 n,m,k,分别代表学生数、增加分数的次数和小西瓜的学号。
接下来 m 行,每行有三个数,l,r,x,代表给第 l 个到第 r 个学生每人增加 x 分。
输出格式
输出仅一行,代表小西瓜的语文成绩。
样例 #1
样例输入 #1
3 3 2
1 1 1
1 2 2
2 3 3
样例输出 #1
5
提示
第一次给 1 号加了 1 分,成绩分别是 1 0 0.
第二次给 1 ~ 2 号加了 2 分,成绩分别是 3 2 0.
第三次给 2 ~ 3 号加了 3 分,成绩分别是 3 5 3.
小西瓜学号为 2,他的分数就是 5.
数据范围
对于 60% 的数据,有 n ≤ 10^3。
对于 100% 的数据,有 m≤ n ≤ 10^5,x ≤ 100。
C++ 代码
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m, k;
cin >> n >> m >> k;
vector<int> scores(n+1, 0); // 初始化分数数组
for (int i = 0; i < m; i++) {
int l, r, x;
cin >> l >> r >> x;
// 将第 l 到第 r 个同学的分数增加 x 分
for (int j = l; j <= r; j++) {
scores[j] += x;
}
}
// 输出小西瓜的分数
cout << scores[k] << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/phOC 著作权归作者所有。请勿转载和采集!