Pagini recente » Cod sursa (job #2193257) | Cod sursa (job #1271796) | Cod sursa (job #1874578) | Cod sursa (job #2487256) | Cod sursa (job #770724)
Cod sursa(job #770724)
#include <fstream>
using namespace std;
int V[10010];
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;
break;
};
}
return 0;
}