Pagini recente » Cod sursa (job #2617777) | Cod sursa (job #1966285) | Cod sursa (job #448266) | Cod sursa (job #237862) | Cod sursa (job #1902465)
#include <bits/stdc++.h>
#define DM 100001
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[DM],n,q,a,x;
int sol0(int x){
int st=0,dr=n+1,mid;
while(dr-st>1){
mid=(st+dr)/2;
if(v[mid]<=x) st=mid;
else dr=mid;
}
if(st==n+1 || v[st]!=x) return -1;
return st;
}
int sol1(int x){
int st=0,dr=n+1,mid;
while(dr-st>1){
mid=(st+dr)/2;
if(v[mid]<=x) st=mid;
else dr=mid;
}
return st;
}
int sol2(int x){
int st=0,dr=n+1,mid;
while(dr-st>1){
mid=(st+dr)/2;
if(v[mid]<x) st=mid;
else dr=mid;
}
return dr;
}
int main()
{
fin>>n;
for(int i=1;i<=n;++i) fin>>v[i];
fin>>q;
while(q--){
fin>>a>>x;
if(a==0) fout<<sol0(x)<<'\n';
if(a==1) fout<<sol1(x)<<'\n';
if(a==2) fout<<sol2(x)<<'\n';
}
return 0;
}