Cod sursa(job #3250535)

Utilizator patriciaolteanOltean Patricia patriciaoltean Data 21 octombrie 2024 18:43:26
Problema Cautare binara Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.31 kb
#include <fstream>

using namespace std;
ifstream cin ("cautbin.in");
ofstream cout ("cautbin.out");
int main()
{
    int v[100001],n,i,st,dr,mij,x,m,c;
    cin >> n;
    for(i=1;i<=n;i++)
    {
        cin >> v[i];
    }
    cin >> m;

    for(i=1;i<=m;i++)
    {
        cin >> c >> x;
        if(c==0)
        {
            st=1;
           dr=n;
          while(st!=dr)
          {
            mij=(dr+st)/2;
            if(x+1<=v[mij])
              dr=mij;
            else
              st=mij+1;
          }
          if(v[st-1]==x)
            cout << st-1 << endl;
          else
            cout << "-1"<< endl;
        }
        if(c==1)
        {
           st=1;
           dr=n;
          while(st!=dr)
          {
            mij=(dr+st)/2;
            if(x+1<=v[mij])
              dr=mij;
            else
              st=mij+1;
          }
           if(x>v[n])
             cout << n<< endl;
           else
            cout << st-1<< endl;
        }
        if(c==2)
        {
            st=1;
           dr=n;
          while(st!=dr)
          {
            mij=(dr+st)/2;
            if(x<=v[mij])
              dr=mij;
            else
              st=mij+1;
          }

            cout << st<< endl;
        }

    }


    return 0;
}