Pagini recente » Cod sursa (job #2943912) | Cod sursa (job #3120598) | Cod sursa (job #2142524) | Cod sursa (job #2400935) | Cod sursa (job #1077719)
#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;
if(v[mijloc]>val)
--mijloc;
out<<mijloc<<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;
if(v[mijloc]<val)
mijloc++;
out<<mijloc<<endl;
}
}
return 0;
}