Cod sursa(job #3273383)

Utilizator MiculSkibidiPitNigga Sigma MiculSkibidiPit Data 1 februarie 2025 21:18:38
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.32 kb
#include<fstream>
using namespace std;

ifstream cin("cautbin.in");
ofstream cout("cautbin.out");

int v[100000];

int main(){
	int n,m,st,dr,mij,pozfin,x,c;
	cin>>n;
	for(int i=0;i<n;i++)
	    cin>>v[i];
	cin>>m;
	for(int i=0;i<m;i++){
	    	cin>>c>>x;
           	st=0;
            	dr=n-1;
		pozfin=-2;
           	if(c==0){
            		while(st<=dr){
                		mij=(st+dr)/2;
                		if(v[mij]==x){
                    			pozfin=mij;
                    			st=mij+1;
                		}
                		else if(v[mij]<x)
                    			st=mij+1;
                		else
                    			dr=mij-1;
            		}
            		cout<<pozfin+1;
        	}
        	if(c==1){
            		while(st<=dr){
                		mij=(st+dr)/2;
                		if(v[mij]<=x){
                    			st=mij+1;
                   	 		pozfin=mij;
                		}
                		else
                    			dr=mij-1;
            		}
            		cout<<pozfin+1;
        	}
        	if(c==2){
            		while(st<=dr){
                		mij=(st+dr)/2;
                		if(v[mij]>=x){
                    			dr=mij-1;
                    			pozfin=mij;
                		}
                		else
                    			st=mij+1;
            		}
            		cout<<pozfin+1;
        	}
        	cout<<'\n';
	}
}