Pagini recente » Cod sursa (job #2316703) | Cod sursa (job #1858310) | Cod sursa (job #1278356) | Cod sursa (job #2292531) | Cod sursa (job #2065642)
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100001];
int caut(int st,int dr,int x)
{
int m,a;
m=(st+dr)/2;
if(st==dr)return -1;
if(v[m]==x)a=m;
else if(v[m]>x)a=caut(st,m,x);
else if(v[m]<x)a=caut(m+1,dr,x);
return a;
}
int main()
{
int n,k,i,nr,opt,a;
f>>n;
for(i=1;i<=n;++i)f>>v[i];
f>>nr;
for(i=1;i<=nr;++i)
{
f>>opt>>k;
if(opt==0){ a=caut(1,n,k);
while(v[a+1]==k)a++;
g<<a<<'\n';
}
else if(opt==1){a=caut(1,n,k);
while(v[a+1]<=k&&(a+1)<=n)a++;
g<<a<<'\n';}
else if(opt==2){a=caut(1,n,k);
while(v[a-1]>=k&&v[a-1]>=1)a--;
g<<a<<'\n';}
}
return 0;
}