Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
338122 黄浙峰老师 【C6-7】节约用电 C++ 通过 100 55 MS 376 KB 1069 2025-08-06 10:32:45

Tests(10/10):


#include <iostream> #include <algorithm> using namespace std; int a[100086]; int main() { // 读取输入:n是灯的数量,m是最大距离 int n, m; cin >> n >> m; // 读取每盏灯的位置 for (int i = 0; i < n; i++) { cin >> a[i]; } // 对灯的位置进行排序 sort(a, a+n); // 如果只有两盏灯,都不能关闭 if (n <= 2) { cout << 0 << endl; return 0; } int x = 0; // 记录关掉的灯的数量 int y = 0; // 上一盏亮着的灯的索引 // 从第二盏灯遍历到倒数第二盏灯 for (int i = 1; i < n-1; i++) { // 判断如果关掉当前灯,上一盏亮灯和下一盏灯之间的距离是否超过m if (a[i+1] - a[y] > m) { // 如果超过m,那么当前灯必须亮着 y = i; } else { // 如果不超过m,那么当前灯可以关掉 x++; } } // 输出关掉的灯的数量 cout << x << endl; return 0; }


测评信息: