Pagini recente » Cod sursa (job #2145312) | Cod sursa (job #613764) | Cod sursa (job #1159448) | Cod sursa (job #788178) | Cod sursa (job #1631104)
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100001];
int main()
{
int n,m,i,gasit=0,st,dr,mij,nr,c,d,k,j;
in>>n;
st=1;
dr=n;
for(i=1; i<=n; i++)
{
in>>v[i];
}
in>>m;
c=m;
while(gasit==0 && st<=dr)
{
mij=(st+dr)/2;
if(m>v[mij])
st=mij+1;
else if(m<v[mij])
dr=mij-1;
else if(m==v[mij])
{
gasit=1;
nr=mij;
}
}
out<<nr;
k=nr;
j=nr;
while(c!=0)
{
in>>d;
in>>m;
if(d==0)
{
while(v[nr]==m)
{
nr++;
}
out<<nr-1<<'\n';
}
if(d==1)
{
while(v[j]<=m)
{
j++;
}
out<<j-1<<'\n';
}
if(d==2)
{
while(v[k]>=m)
{
k--;
}
out<<k+1;
}
c--;
}
return 0;
}