Pagini recente » Cod sursa (job #1356245) | Algoritmiada 2012 - Clasament | Cod sursa (job #3240748) | Cod sursa (job #666550) | Cod sursa (job #206099)
Cod sursa(job #206099)
using namespace std;
#include<fstream>
const int N=100100;
int caut(int x,int n,int v[N])
{
int p=1,u=n,m;
while(p!=u)
{
m=(p+u)/2;//m=(u-p)/2+p
if(x<=v[m])
u=m;
else
p=m+1;
}
return p;
}
int main()
{
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int r,n,v[N],i,tip,x,m;
in>>n;
for(i=1;i<=n;++i)
in>>v[i];
in>>m;
while(m--)
{
in>>tip>>x;
r=caut(x,n,v);
if(tip==0)
if(v[r]==x)
out<<r<<"\n";
else
out<<"-1\n";
if(tip==1)
if(v[r]<=x)
out<<r<<"\n";
else
out<<r-1<<"\n";
if(tip==2)
if(v[r]>=x)
out<<r<<"\n";
else
out<<r+1<<"\n";
}
in.close();
out.close();
return 0;
}