Pagini recente » Cod sursa (job #2714632) | Cod sursa (job #2868772) | Cod sursa (job #2319963) | Cod sursa (job #2646798) | Cod sursa (job #1077712)
#include <fstream>
using namespace std;
ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int v[100001];
int main()
{
int u, p, n, m, mijloc, tip, val;
in>>n;
for(int i=1;i<=n; i++)
in>>v[i];
in>>m;
while(m--)
{
in>>tip>>val;
if(tip==0)
{
p=1;
u=n;
while (p<=u)
{mijloc=(p+u)/2;
if(v[mijloc]<=val)
p=mijloc+1;
else u=mijloc-1;
}
mijloc=(p+u)/2;
if(v[mijloc]==val)
out<<mijloc<<endl;
else out<<-1<<endl;
}
if(tip==1)
{
p=1;
u=n;
while(p<u)
{
mijloc=(p+u)/2;
if(v[mijloc]<=val)
p=mijloc+1;
else u=mijloc;
}
mijloc=(p+u)/2;
out<<mijloc-1<<endl;
}
if(tip==2)
{
p=1;
u=n;
while(p<u)
{
mijloc=(p+u)/2;
if(v[mijloc]<val)
p=mijloc+1;
else u=mijloc;
}
mijloc=(p+u)/2;
out<<mijloc<<endl;
}
}
return 0;
}