Pagini recente » Cod sursa (job #2529148) | Cod sursa (job #2152463) | Cod sursa (job #403138) | Cod sursa (job #1973268) | Cod sursa (job #2666594)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,mijloc,st,dr,caz,e,m,v[100001];
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
fin>>m;
for(int i=1;i<=m;i++)
{
fin>>caz>>e;
st=1;
dr=n;
while(dr-st>1)
{
mijloc=(dr+st)/2;
if(v[mijloc]<e)
dr=mijloc;
else
st=mijloc;
// cout << st<<' ' <<dr<<' '<<mijloc << endl;
}
if(caz==0)
{
if(v[st]==e)
fout<<st<<'\n';
else
fout<<"-1"<<'\n';
}
if(caz==1)
{
while(v[st]>e)
st--;
fout<<st<<'\n';
}
if(caz==2)
{
while(v[st-1]==e)
st--;
while(v[st]<e)
st++;
fout<<st<<'\n';
}
}
//cout << "Hello world!" << endl;
return 0;
}