Pagini recente » Cod sursa (job #377204) | Cod sursa (job #2407925) | Cod sursa (job #15623) | Cod sursa (job #1890207) | Cod sursa (job #1430315)
#include<fstream>
using namespace std;
ifstream f("cautbin.in"); ofstream g("cautbin.out");
int v[100001];
int main()
{ int n,i,k,m;
f>>n;
for(i=1; i<=n; i++) f>>v[i];
f>>k;
while(k--)
{ int t,x,st,dr;
f>>t>>x;
if(t==0)
{ st=1; dr=n;
while(st<=dr)
{ m=(st+dr)/2;
if(v[m]<=x) st=m+1; else dr=m-1;
}
m=(st+dr)/2;
if(v[m]>x) m--;
if(v[m]==x) g<<m<<"\n"; else g<<"-1\n";
};
if(t==1)
{ st=1; dr=n;
while(st<dr)
{ m=(st+dr)/2;
if(v[m]<=x) st=m+1; else dr=m;
}
m=(st+dr)/2;
if(x<v[m]) m--;
g<<m<<"\n";
};
if(t==2)
{ st=1; dr=n;
while(st<dr)
{ m=(st+dr)/2;
if(v[m]<x) st=m+1; else dr=m;
}
m=(st+dr)/2;
if(v[m]<x) m++;
g<<m<<"\n";
};
}
g.close();
return 0;
}