Pagini recente » Cod sursa (job #1036067) | Cod sursa (job #2920589) | Cod sursa (job #1055924) | Cod sursa (job #1435182) | Cod sursa (job #2330342)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,m,c,x,i,j,v[100005];
int main()
{
fin>>n;
for(i=1; i<=n; i++)
fin>>v[i];
fin>>m;
for(i=1; i<=m; i++)
{
fin>>c>>x;
int st,dr,mij;
st=1;
dr=n;
if(c==0)
{
while(st<=dr)
{
mij=(st+dr)/2;
if (v[mij]>x) dr=mij-1;
else st=mij + 1;
}
if(v[dr] != x)
fout<<"-1"<<'\n';
else
fout<<dr<<'\n';
}
if(c==1){
while(st<=dr){
mij=(st+dr)/2;
if (v[mij]>x) dr=mij-1;
else st=mij+1;
}
fout << dr << '\n';
}
if(c==2)
{
while(st<=dr){
mij=(st+dr)/2;
if (v[mij]>=x) dr=mij-1;
else st=mij+1;
}
fout << st << '\n';
}
}
return 0;
}