Cod sursa(job #3168043)

Utilizator PapCzierPeterPap-Czier Peter PapCzierPeter Data 11 noiembrie 2023 14:25:18
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.22 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream f ("cautbin.in");
    ofstream g ("cautbin.out");
    int n,t[100000],m,a,x,bal,jobb,z;
    f>>n;
    for (int i=1;i<=n;i++)f>>t[i];
    f>>m;
    for (int i=1;i<=m;i++){
            f>>a>>x;
            if (a==2) { bal=1; jobb=n;
            while (jobb!=bal){
                      z=(bal+jobb)/2;
                      if (t[z]>=x) jobb=z;
                      else bal=z;
                      if (t[bal]<x&&bal==z) bal++;

            }
     g<<jobb<<" ";
     }
            if (a==0) {
                  bal=1; jobb=n;
                  while (jobb!=bal){
                        z=(bal+jobb)/2+1;
                        if (t[z]>x) jobb=z-1;
                        else bal=z;
            }
      if (x==t[jobb]) g<<jobb<<" ";
      else g<<-1<<" ";

     }
            if (a==1) {
                  bal=1; jobb=n;
                  while (jobb!=bal){
                        z=(bal+jobb)/2+1;
                        if (t[z]>x) jobb=z;
                        else bal=z;
                        if (t[jobb]>x&&jobb==z) jobb--;

            }
      g<<jobb<<" ";


     }


    }

    return 0;
}