Pagini recente » Cod sursa (job #2231151) | Cod sursa (job #2851638) | Cod sursa (job #458379) | Cod sursa (job #3191659) | Cod sursa (job #273435)
Cod sursa(job #273435)
#include<stdio.h>
#include<iostream.h>
#define MAX 100005
int n,m,i,v[MAX],op,x,var;
int binary_search(int val)
{
int st=1,dr=n,m;
while(st!=dr)
{
m=dr+(st-dr)/2;
if(val>=v[m]) st=m;
else dr=m-1; }
return dr;
}
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; i++) scanf("%d",v+i);
scanf("%d",&m);
while(m--)
{
scanf("%d %d",&op,&x);
var=binary_search(x);
if(op==0 || op==1) while(v[var+1]==x) var++;
if(op==2) while(v[var-1]==x) var--;
if(op==0) if(v[var]!=x) printf("-1\n");
else printf("%d\n",var);
if(op==1) if(v[var]>x) printf("%d\n",var-1);
else printf("%d\n",var);
if(op==2) if(v[var]<x) printf("%d\n",var+1);
else printf("%d\n",var);
}
return 0;
}