Harvest - Niuke.com - Perguntas da entrevista

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;
}

 

Acho que você gosta

Origin blog.csdn.net/qq_40513792/article/details/104287882
Recomendado
Clasificación