站外题求助
  • 板块灌水区
  • 楼主electric_fire
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/10/4 18:39
  • 上次更新2024/10/4 20:32:54
查看原帖
站外题求助
1109115
electric_fire楼主2024/10/4 18:39

题目描述

李老师最近买了一个书架用来存放编程知识书籍,但书架很快被存满了,只剩最顶层有空余。

李老师共有N个学生(1 ≤ N ≤ 20,000),每个学生有自己的高度Hi(1 ≤ Hi ≤ 10,000),N个学生的总高度为S。书架高度为B(1 ≤ B ≤ S < 2,000,000,007).

为了到达书架顶层,学生可以踩着其他学生的背,像叠罗汉一样,直到他们的总高度高于书架高度。当然若学生越多则危险性越大。为了帮助李老师到达书架顶层,找出使用学生数目最少的解决方案吧。

输入格式

第1行:空格隔开的整数N和B 第2~N+1行:第i+1行为整数Hi

输出格式

能达到书架高度所使用学生的最少数目

我的代码:

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, m, b, sum = 1;
	cin >> n >> m;
	int a[n];
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	for (int i = 1; i <= n; i++) {
		if (a[i] < a[i + 1]) {
			b = a[i];
			a[i + 1] = a[i];
			a[i + 1] = b;
		}
	}
	for (int i = 1; i <= n; i++) {
		if (n - a[i] <= 0) {
			cout << sum;
			break;
		} else {
			sum++;
			n = n - a[i];
		}
	}
	return 0;
}
2024/10/4 18:39
加载中...