Pagini recente » Cod sursa (job #2720978) | Cod sursa (job #2757826) | Cod sursa (job #118506) | Cod sursa (job #2721296) | Cod sursa (job #2865608)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,v[100001];
int m,c,x;
int main()
{
f>>n;
for(int i=1;i<=n;i++) f>>v[i];
f>>m;
{
int st,dr,mid;bool ok;
for(int i=0;i<m;i++)
{
f>>c>>x;
st=1;dr=n;mid=(st+dr)/2;
while(st!=mid)
{
if((c==2)?v[mid]>=x:v[mid]>x) dr=mid;
else st=mid+1;
mid=(st+dr)/2;
//cout<<st<<' '<<dr<<' '<<mid<<'\n';
}
switch(c)
{
case 0:
g<<(v[mid]==x?mid:-1)<<'\n';
break;
case 1:
g<<mid<<'\n';
break;
case 2:
g<<mid+1<<'\n';
}
}
}
return 0;
}