Pagini recente » Cod sursa (job #2645120) | Cod sursa (job #298142) | Cod sursa (job #2582188) | Cod sursa (job #668478) | Cod sursa (job #459280)
Cod sursa(job #459280)
#include <fstream>
using namespace std;
ifstream fin; ofstream fout;
long n,m,a[100010],i,x,y;
void caut1 (long l,long r,long y) {
long u=l,v=r,z;
while (u<v) {
z=(u+v+1)/2;
if (a[z]<=y) u=z; else v=z-1;
}
if (a[u]==y) fout<<u+1<<endl; else fout<<-1;
}
void caut2 (long l,long r,long y) {
long u=l,v=r,z;
while (u<v) {
z=(u+v+1)/2;
if (a[z]<=y) u=z; else v=z-1;
}
fout<<u+1<<endl;
}
void caut3 (long l,long r,long y) {
long u=l,v=r,z;
while (u<v) {
z=(u+v)/2;
if (a[z]>=y) v=z; else u=z+1;
}
fout<<u+1<<endl;
}
int main () {
fin.open ("cautbin.in"); fout.open ("cautbin.out");
fin>>n;
for (i=0; i<n; i++) fin>>a[i];
fin>>m;
for (i=0; i<m; i++) {
fin>>x>>y;
if (x==0) caut1 (0,n-1,y); else
if (x==1) caut2 (0,n-1,y); else
caut3 (0,n-1,y);
}
fin.close (); fout.close ();
return 0;
}