Pagini recente » Cod sursa (job #83067) | Cod sursa (job #258484) | Cod sursa (job #696487) | Cod sursa (job #3201815) | Cod sursa (job #1174705)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,a[100005],t,q;
int bsrc (int val)
{int pas,i;
for (pas=1;pas<=n;pas<<=1);
for (i=0; pas ; pas>>=1)
if (i+pas<n && a[i+pas]<=val)
i+=pas;
return i;
}
int main()
{int i,v,val;
f>>n;
for (i=0;i<n;i++)
f>>a[i];
f>>q;
for (i=0;i<q;i++)
{f>>t>>val;
if (t==0)
{v=bsrc(val);
if (a[v]==val) g<<v+1<<'\n';
else g<<"-1"<<'\n';
}
if (t==1)
g<<bsrc(val)+1<<'\n';
if (t==2)
{v=bsrc(val);
if (a[v]!=val) g<<v+2<<'\n';
else
{while (a[v]==val)
v--;
g<<v+2<<'\n';
}
}
}
return 0;
}