Pagini recente » Cod sursa (job #2383176) | Cod sursa (job #3146102) | Cod sursa (job #2791501) | Cod sursa (job #1603155) | Cod sursa (job #612987)
Cod sursa(job #612987)
#include <fstream>
using namespace std;
int i,v[100000],m,x,y;
long int n,st,dr,mij;
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
f>>m;
for (i=1;i<=m;i++){
f>>x>>y;
if (x==0) {
st=1;dr=n;
while (st<=dr) {
mij=(st+dr)/2;
if (v[m]<=y) st=mij+1;
else
dr=mij-1;
}
if (v[mij]>y) --mij;
if (v[mij]==y) g<<mij<<'\n';
else
g<<"-1"<<'\n';
}
if (x==1) {
st=1;dr=n;
while (st<dr) {
mij=(st+dr)/2;
if (v[mij]<=y) st=mij+1;
else
dr=mij;
}
mij=(st+dr)/2;
if (v[mij]>y) --mij;
g<<mij<<'\n';
}
if (x==2) {
st=1;dr=n;
while (st<dr) {
mij=(st+dr)/2;
if (v[mij]<y) st=mij+1;
else
dr=mij;
}
mij=(st+dr)/2;
if (v[mij]<y) mij++;
g<<mij<<'\n';
}
}
f.close();
g.close();
return 0;
}