Pagini recente » Cod sursa (job #1332122) | Cod sursa (job #1476848) | Cod sursa (job #1078521) | Cod sursa (job #445690) | Cod sursa (job #2387370)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,mij,st,dr,i,pozx,intr,r,v[100001];
int main()
{ f>>n;
unsigned int x;
st=1;
dr=n;
for(i=1;i<=n;i++)
{
f>>v[i];
}
f>>m;
for(i=1;i<=m;i++)
{
f>>intr>>x;
st=1;
dr=n;
while(st<dr)
{
mij=st+(dr-st+1)/2;
if(v[mij]>x)
dr=mij-1;
else st=mij;
}
pozx=dr;
if(intr!=2)
{
if(v[pozx]==x)
{
g<<pozx<<'\n';
}
else
{
if(intr==0)
{
g<<-1<<'\n';
}
if(intr==1)
{
g<<pozx<<'\n';
}
}
}
if(intr==2)
{
st=1;
dr=n;
while(st<dr)
{
mij=st+(dr-st+1)/2;
if(v[mij]>=x)
dr=mij-1;
else
st=mij;
}
pozx=dr;
g<<pozx+1<<'\n';
}
}
return 0;
}