█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 6833

Problema 0x63 - Encontrar el primer elemento mayor a X en un arreglo ordenado

  • Autor: bsoto028
  • Fecha: 2022-12-25 02:21:41 UTC (Hace alrededor de 1 mes)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.005 s 1 KBi
#2
Correcto
0.007 s 3 KBi
#3
Correcto
0.005 s 1 KBi
#4
Correcto
0.007 s 5 KBi
#5
Correcto
0.005 s 1 KBi
#6
Correcto
0.005 s 1 KBi
#7
Correcto
0.004 s 1 KBi
#8
Correcto
0.005 s 1 KBi
#9
Correcto
0.005 s 11 KBi
#10
Correcto
0.005 s 2 KBi
#11
Correcto
0.004 s 2 KBi
#12
Correcto
0.176 s 2 KBi
#13
Correcto
0.151 s 2 KBi
#14
Correcto
0.194 s 2 KBi
#15
Correcto
0.199 s 2 KBi
#16
Correcto
0.185 s 2 KBi
#17
Correcto
0.17 s 2 KBi
Puntos totales: 100 / 100

Código

#include <bits/stdc++.h>

const int max = 1e6;
long long int A[max];
using namespace std;
void solucion1(){
    long long N;
    cin>>N;
    for (int i = 0; i < N ; ++i) {
        cin>>A[i];
    }
    int t;
    cin>>t;

    while(t--){
        int x,ans;
        cin>>x;
        bool vand = false;
        for (int i = 0; i < N; ++i) {
            if(A[i]>x) {
                ans = i;
                vand = true;
                break;
            }
        }

        if(vand)
            cout<<ans<<endl;
        else
            cout<<N<<endl;

    }

}


void solucion2(){
    long long N;
    cin>>N;
    for (int i = 0; i < N ; ++i) {
        cin>>A[i];
    }
    int t;
    cin>>t;

    while(t--){
        int x,ans = int(N);
        cin>>x;
        int inicio = 0;
        int final = int(N);

        while(inicio<final){
            int med = (inicio + final)/2;
            if(A[med]<=x){
                inicio = med+1;
            }
            else{
                ans = med;
                final = med;
            }

        }
        cout<<ans<<endl;
    }


}


int main(){
    solucion2();



    return 0;
}