Pagini recente » Cod sursa (job #1263391) | Cod sursa (job #1289652) | Cod sursa (job #2990631) | Cod sursa (job #869271) | Cod sursa (job #2095661)
#include <iostream>
#include <fstream>
using namespace std;
int a[100001];
int cb(int n,int a[],int ce )
{
int st=1;int dr=n;int mij;
while(dr>=st)
{
mij=(st+dr)/2;
if(a[mij]>ce)
dr=mij-1;
else
st=mij+1;
}
if(a[dr]==ce)
return dr;
else return -1;
}
int cb1(int n,int a[],int ce)
{
int st=1;int dr=n;int mij;
while(dr>=st)
{
mij=(st+dr)/2;
if(a[mij]<=ce)
{if(dr-st==1)
if(a[dr]>ce)
return st;
else return dr;
else
st=mij;}
else
dr=mij-1;
}
}
int cb2(int n,int a[],int ce)
{
int st=1;int dr=n;int mij;
while(dr>=st)
{
mij=(st+dr)/2;
if(a[mij]>=ce)
{if(dr-st==1)
if(a[st]<ce)
return dr;
else return st;
else
dr=mij;}
else
st=mij+1;
}
}
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main()
{
int n,i,d,x,b,e,m;
in>>n;
for(i=1;i<=n;i++)
in>>a[i];
in>>m;
for(i=1;i<=m;i++)
{
in>>b>>x;
if(b==0){
d=cb(n,a,x);
out<<d<<'\n';}
if(b==1)
{
d=cb1(n,a,x);
out<<d<<'\n';
}
if(b==2)
{
d=cb2(n,a,x);
out<<d<<'\n';
}
}
return 0;
}