Descrição do título
Era época de colheita novamente e coincidiu que Xiao Yi foi brincar no pomar de Niuniu.
Niuniu costumava dizer que sabia tudo sobre o pomar inteiro, mas Xiao Yi não acreditava muito nisso, então ele queria testar Niuniu.
Existem N pilhas de maçãs no pomar, e o número de maçãs em cada pilha é ai. Xiao Yi quer saber a qual pilha pertence a xª maçã da esquerda para a direita.
Niuniu acha que esta pergunta é muito simples, então espero que você responda por ele.
Digite a descrição:
Um número n na primeira linha (1 <= n <= 105). Existem n números na segunda linha ai (1 <= ai <= 1000), indicando quantas maçãs existem na i-ésima pilha da esquerda para a direita, e um número m na terceira linha (1 <= m < = 105), indicando que há m consultas. O número m qi na quarta linha indica que Xiao Yi deseja saber a qual pilha a qi-ésima maçã pertence.
Descrição de saída:
Na linha m, as saídas da i-ésima linha que empilham a qi-ésima maçã pertence.
Exemplo 1
entrar
5 2 7 3 4 9 3 1 25 11
Resultado
1 5 3
Código de referência:
#include <cstdio>
#include <iostream>
using namespace std;
const int MAXN = 1e5 + 5;
int n, m, q;
int s[MAXN];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &s[i]);
s[i] += s[i - 1];
}
scanf("%d", &m);
for (int i = 1; i <= m; i++) {
scanf("%d", &q);
//binary search
int low = 1, high = n;
while (low < high) { //
int mid = (low + high) >> 1;
if (s[mid] < q) low = mid + 1;
else high = mid;
}
printf("%d\n", high);
}
return 0;
}