1 条题解
-
0
#include #include #include using namespace std;
int main() { int n, p; cin >> n >> p;
vector<int> scores(n); for (int i = 0; i < n; i++) { cin >> scores[i]; } // 差分数组 vector<int> diff(n + 1, 0); // 处理p次操作 for (int i = 0; i < p; i++) { int x, y, z; cin >> x >> y >> z; // 注意:x、y从1开始,转换为0-based diff[x - 1] += z; diff[y] -= z; // y是闭区间,所以y+1处减去z } // 根据差分数组计算最终分数 int add = 0; int minScore = 1e9; // 设一个很大的初始值 for (int i = 0; i < n; i++) { add += diff[i]; scores[i] += add; if (scores[i] < minScore) { minScore = scores[i]; } } cout << minScore << endl; return 0;}
- 1
信息
- ID
- 14536
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者