Pagini recente » Cod sursa (job #2337840) | Cod sursa (job #2362936) | Cod sursa (job #2315428) | Cod sursa (job #2672291) | Cod sursa (job #1426314)
#include<fstream>
#define MAXIM 100010
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int V[MAXIM];
int main ()
{
int N,M,type,x,st,dr;
in>>N;
for(int i=1;i<=N;i++) in>>V[i];
in>>M;
for(int i=1;i<=M;i++)
{
in>>type>>x;
switch(type)
{
case 0:
{
int m;
st=1; dr=n;
while(st<=dr)
{
m=(st+dr)/2;
if(v[m]<=x) st=m+1; else dr=m-1;
}
if(v[dr]==x) out<<dr<<"\n"; else out<<"-1"<<"\n";
break;
}
case 1:
{
int m;
st=1; dr=n;
while(st<=dr)
{
m=(st+dr)/2;
if(v[m]<=x) st=m+1; else dr=m-1;
}
out<<dr<<"\n";
break;
}
case 2:
{
int m;
st=1; dr=n;
while(st<=dr)
{
m=(st+dr)/2;
if(v[m]<x) st=m+1; else dr=m-1;
}
out<<st<<"\n";
break;
}
}
}
out.close();return 0;
}