Pagini recente » Cod sursa (job #2196377) | Cod sursa (job #1640061) | Cod sursa (job #1548381) | Cod sursa (job #1835328) | Cod sursa (job #2681250)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100005];
int main()
{
int N,M,ques,lf,rg,val,poz;
fin>>N;
for(int i=1; i<=N; i++)
{
fin>>v[i];
}
fin>>M;
for(int i=1; i<=M; i++)
{
lf=1;
rg=N;
fin>>ques>>val;
if(ques==0 || ques==1)
{
while(lf<=rg)
{
int med=(lf+rg)/2;
if(v[med]<=val)
{
poz=med;
lf=med+1;
}
else rg=med-1;
}
if(ques==0&&v[poz]!=val) fout<<"-1"<<'\n';
else fout<<poz<<'\n';
}
if (ques==2)
{
while(lf<=rg)
{
int med=(lf+rg)/2;
if(v[med]>=val)
{
poz=med;
rg=med-1;
}
else lf=med+1;
}
fout<<poz<<'\n';
}
}
return 0;
}