Pagini recente » Cod sursa (job #2406721) | Cod sursa (job #2715548) | Cod sursa (job #2700091) | Cod sursa (job #631092) | Cod sursa (job #770731)
Cod sursa(job #770731)
#include <fstream>
using namespace std;
int V[100100];
int N, M, i, p, u, m, x, t;
int main(){
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>N;
for (i=1;i<=N;i++)
f>>V[i];
f>>M;
for (;M;M--) {
f>>t>>x;
switch (t) {
case 0:
p = 1; u = N;
while (p<=u) {
m = (p+u)/2;
if (V[m]<=x)
p = m+1;
else
u = m-1;
}
if (V[u] == x)
g<<u<<"\n";
else
g<<"-1\n";
break;
case 1:
p = 1; u = N;
while (p<=u) {
m = (p+u)/2;
if (V[m]<=x)
p = m+1;
else
u = m-1;
}
g<<u<<"\n";
break;
case 2:
p = 1; u = N;
while (p<=u) {
m = (p+u)/2;
if (V[m] >= x) {
u = m-1;
} else {
p = m+1;
}
}
g<<p<<"\n";
break;
};
}
return 0;
}