第十四届蓝桥杯青少组C++选拔赛[2022.12.18]第二部分编程题(4、充电站)
参考程序:
#include <bits/stdc++.h>
using namespace std;int main() {int D, N;cin >> D >> N; // 读取 D 和 Nvector<int> dist(N - 1);for (int i = 0; i < N - 1; ++i) {cin >> dist[i]; // 读每一段相邻站之间的距离}// 先检查有没有单段距离大于 D,如果有,必定到不了终点for (int d : dist) {if (d > D) {cout << -1 << "\n";return 0;}}int count = 1; // 包含起点的第一次充电int remaining = D; // 当前剩余可行驶里程(起点充满电)// 依次尝试每一段路for (int i = 0; i < N - 1; ++i) {if (remaining < dist[i]) {// 到不了下一站,必须在当前站充电count++;remaining = D; // 充满电}remaining -= dist[i]; // 开车走这一段}cout << count << "\n";return 0;
}