Cod sursa(job #1264168)

Utilizator mose123Mosessohn Vlad mose123 Data 15 noiembrie 2014 16:17:04
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int main()
{
int n,v[100005],i,j,m,p,pp,a,b,st,dr,mij,sol;
f>>n;
for(i=1;i<=n;i++)
    f>>v[i];
f>>m;
for(i=1;i<=m;i++){
    f>>a>>b;
    p=0;
    dr=n;
    st=1;
    sol=-1;
    if(a==0) while(st<=dr){
                    mij=(st+dr)/2;
                    if(b<v[mij]) dr=mij-1;
                    if(b>v[mij]) st=mij+1;
                    if(b==v[mij]){sol=mij;st=mij+1;}
                    }
    if(a==1)while(st<=dr){
                mij=(st+dr)/2;
                if(b>=v[mij]) {sol=mij;st=mij+1;}
                    else dr=mij-1;
            }
    if(a==2) while(st<=dr){
                    mij=(st+dr)/2;
                    if(v[mij]>=b) {sol=mij;dr=mij-1;}
                            else st=mij+1;
    }
    if(sol>0) g<<sol<<'\n';
        else g<<-1<<'\n';
    }
return 0;
}