Pagini recente » Cod sursa (job #1641403) | Cod sursa (job #1342000) | Cod sursa (job #455704) | Cod sursa (job #3235559) | Cod sursa (job #1516154)
#include<fstream>
using namespace std;
int v[100002],n,m;
int t1(int x){
int f=1,l=n,m,p=-1;
while(f<=l)
{
m=(f+l)/2;
if(v[m]==x)
{
p=m;
f=m+1;
}
else if(x<v[m]) l=m-1;
else f=m+1;
}
return p;
}
int t2(int x){
int f=1,l=n,m,p=0;
while(f<=l)
{
m=(f+l)/2;
if(x<v[m])
l=m-1;
else{
p=m;
f=m+1;
}
}
return p;
}
int t3(int x){
int f=1,l=n,m,p=-1;
while(f<=l)
{
m=(f+l)/2;
if(x>v[m])
f=m+1;
else{
l=m-1;
p=m;
}
}
return p;
}
int main(){
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int x,y,t;
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
in>>t;
for(int i=1;i<=t;i++){
in>>x>>y;
if(x==0)
out<<t1(y)<<'\n';
if(x==1)
out<<t2(y)<<'\n';
if(x==2)
out<<t3(y)<<'\n';
}
in.close();
out.close();
return 0;
}