Pagini recente » Statistici Bucur Andrei (loctarar) | Istoria paginii preoni-2008/runda-1/5-8 | Statistici Jourdheuil Philippe (ph1lippejourdheuil) | Cod sursa (job #1320147) | Cod sursa (job #2226979)
#include <iostream>
#include <fstream>
using namespace std;
int n,m,v[10001],i,a,x;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
void alpha(int n,int &x)
{int st,dr,mij,ans;
st=1;
dr=n;
ans=-1;
while(st<=dr)
{mij=(st+dr)/2;
if(v[mij]==x)
{
ans=x;
st=mij+1;
}
else
{
if(v[mij]>x)
dr=mij-1;
else
st=mij+1;
}
}
x=ans;
}
int beta(int n, int &x){
int st,dr,mij,ans;
st=1;
dr=n;
ans=1;
while(st<=dr){
mij=(dr+st)/2;
if(v[mij]<=x)
{ans=mij;
st=mij+1;
}
else
dr=mij-1;
}
x=ans;
}
int delta(int n,int &x){
int st,dr,mij,ans;
st=1;
dr=n;
ans=1;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]>=x)
{ans=mij;
dr=mij-1;
}
else
st=mij+1;
}
x=ans;
}
int main()
{in>>n;
for(i=1;i<=n;i++)
in>>v[i];
in>>m;
for(i=1;i<=m;i++){
in>>a;
in>>x;
if(a==0)
alpha(n,x);
if(a==1)
beta(n,x);
if(a==2)
delta(n,x);
out<<x;
out<<endl;
}
return 0;
}