Aprenda C++ desde tenra idade! Registre as perguntas feitas durante o processo de aprendizagem e preparação para o exame Luogu C++ e registre cada momento.
Em anexo está uma postagem resumida: A linguagem C++ de Luogu | Resumo_O blog de um comunicador que adora programar - blog CSDN
[Descrição do título]
O fazendeiro John adicionou recentemente uma enorme estante à biblioteca das vacas e, embora seja tão grande, é quase instantaneamente preenchida com todos os tipos de livros. Agora resta apenas um pouco de espaço no topo da estante.
Todas as N (1≤ N ≤20.000) vacas têm uma certa altura Hi (1≤ Hi ≤10.000). Deixe a soma das alturas de todas as vacas ser S. A altura da estante é B, e é garantido que 1≤ B ≤ S <2.000.000.007.
Para chegar ao topo da estante, que é mais alto que a vaca mais alta, as vacas tiveram que realizar acrobacias, umas sobre as costas das outras, formando uma “torre de vacas”. Claro, a altura desta torre é a soma das alturas de todas as vacas na torre. Para colocar algo em cima da estante, a soma das alturas de todas as vacas deve ser pelo menos a altura da estante.
Obviamente, quanto mais vacas na torre, mais instável será a torre inteira, então as vacas esperam manter o número de vacas na torre o menor possível e, ao mesmo tempo, alcançar o topo da estante. Agora, as vacas encontraram você e esperam que você possa ajudá-las a calcular esse número mínimo.
【digitar】
- Linha 1: 2 inteiros separados por espaços: N e B ;
- Linha 2... N +1: A linha i +1 é um número inteiro: Hi .
【Saída】
- Linha 1: Saída 1 inteiro, ou seja, o número mínimo de vacas que devem ser empilhadas em uma torre para chegar ao topo da estante.
【Amostra de entrada】
6 40
6
18
11
13
19
11
【Amostra de saída】
3
[Explicação detalhada do código]
#include <bits/stdc++.h>
using namespace std;
int n, b, ans=0, tmp=0, a[20005];
bool cmp(int l, int r) {
return l>r;
}
int main()
{
cin >> n >> b;
for (int i=1; i<=n; i++) cin >> a[i];
sort(a+1, a+n+1, cmp);
while (tmp<b) {
ans++;
tmp+=a[ans];
}
cout << ans;
return 0;
}
【resultado da operação】
6 40
6
18
11
13
19
11
3