Cod sursa(job #2201975)

Utilizator SchimbatorLaurakeemoo SchimbatorLaura Data 6 mai 2018 20:21:12
Problema Cautare binara Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int a[100];
int main() 
{	int i,n,m,t,x;
    fin>>n;
    for (i=1; i<=n; ++i) fin>>a[i];
    fin>>m;
    while(m){
        fin>>t>>x;
        if(t==0)
             {	int st=1,dr=n,mid;
                while(st<=dr){
                    mid=(st+dr)/2;
                    if(a[mid]<=x) st=mid+1;
                    else dr=mid-1;
                 }
                 mid=(st+dr)/2;
                 if(a[mid]>x) mid--;
                 if(a[mid]==x) fout<<mid<<'\n';
                    else fout<<-1<<'\n';
             }
        if(t==1)
             {	int st=1, dr=n, mid;
                while(st<dr){
                    mid=(st+dr)/2;
                    if(a[mid]<=x) st=mid+1;
                    else dr=mid;
                 }
                 mid=(st+dr)/2;
                 if(a[mid]>x) mid--;
                 fout<<mid<<'\n';
             }
        if(t==2)
             {  int st=1, dr=n, mid;
                while(st<dr){
                    mid=(st+dr)/2;
                    if(a[mid]<x) st=mid+1;
                    else dr=mid;
                 }
                 mid=(st+dr)/2;
                 if(a[mid]<x) mid++;
                 fout<<mid<<'\n';
             }
             m--;
    }
}