Pagini recente » Cod sursa (job #3201631) | Cod sursa (job #617980) | Cod sursa (job #1548091) | Cod sursa (job #1853189) | Cod sursa (job #1168525)
#include <fstream>
using namespace std;
static const int NMAX=100005;
int main()
{
int n,m,v[NMAX],i,t,nr,l,dr,mid,sol;
fstream f("cautbin.in",ios::in),g("cautbin.out",ios::out);
f>>n;
for(i=1; i<=n; ++i) f>>v[i];
f>>m;
for(i=1; i<=m; ++i)
{
f>>t>>nr;
l=1;
dr=n;
sol=-1;
if(!t)
{
while(l<=dr)
{
mid=l+(dr-l)/2;
if(v[mid]<nr) l=mid+1;
else if(v[mid]>nr) dr=mid-1;
else
{
sol=mid;
l=mid+1;
}
}
g<<sol<<'\n';
}
else if(t==1)
{
while(l<=dr)
{
mid=l+(dr-l)/2;
if(v[mid]<=nr)
{
l=mid+1;
sol=mid;
}
else dr=mid-1;
}
g<<sol<<'\n';
}
else
{
while(l<=dr)
{
mid=l+(dr-l)/2;
if(v[mid]<nr) l=mid+1;
else
{
sol=mid;
dr=mid-1;
}
}
g<<sol<<'\n';
}
}
f.close();
g.close();
return 0;
}