Cod sursa(job #3324373)

Utilizator vndianamaria@gmail.comIvan Diana [email protected] Data 22 noiembrie 2025 10:17:20
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.64 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <fstream>

using namespace std;
int v[100001];
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int main()
{
    int n, m, c = 0, x, y ;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> v[i];
    }
    cin >> m;
    for (int i = 0; i < m ; i++) {
        cin >> x >> y;
          int st = 0, dr = n - 1;
        if (x == 0) {
              st = 0, dr = n - 1;
            while (st <= dr) {
                int mid  = st + (dr - st) / 2;
                if (v[mid] > y){
                 dr = mid - 1;}
                 else st = mid + 1;
            }  
            if (v[dr] != y) cout << -1;
            else
            cout << dr + 1 << endl;
        }
        else if (x == 1) {
              st = 0, dr = n - 1;
            while (st <= dr) {
                int mid  = st + (dr - st) / 2;
                if (v[mid] > y){
                 dr = mid - 1;}
                 else st = mid + 1;
            }  cout << dr + 1 << endl ;
            
        }
        else if (x == 2 ){
              st = 0, dr = n - 1;
            while (st <= dr) {
                int mid  = st + (dr - st) / 2;
                if (v[mid] < y){
                 st = mid + 1;}
                 else dr = mid - 1;
            }  cout << st + 1<< endl ;
        }
      
      
    }
    
    return 0;
}