Pagini recente » Cod sursa (job #282694) | Cod sursa (job #3291284) | Cod sursa (job #3281680) | Cod sursa (job #1754340) | Cod sursa (job #1519208)
#include<fstream>
using namespace std;
int a[100133];
int i,j,k,m,n,t;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
struct loc
{int x,y,z;};
loc cauta (int x)
{
int ic=1;
int sf=n;
loc v;
while (ic<=sf)
{
int mijl=(ic+sf)/2;
if (x>=a[mijl]) ic=mijl+1;
if (x<=a[mijl]) sf=mijl-1;
}
v.x=ic;
v.y=sf;
return v;
}
int main()
{
ios_base::sync_with_stdio(0);
cin>>n;
for (i=1; i<=n; ++i) cin>>a[i];
cin>>m;
while (m--)
{
int op,k;
cin>>op>>k;
loc u=cauta(k);
if (!op)
{
if (a[u.x]==k) cout<<u.x<<"\n";
else cout<<"-1\n";
}
else
if (op==1)
{
cout<<u.x<<"\n";
}
else
{
cout<<u.y<<"\n";
}
}
return 0;
}