Pagini recente » Cod sursa (job #3360444) | Cod sursa (job #3360454) | Cod sursa (job #3360389) | Cod sursa (job #3360450) | Cod sursa (job #3360453)
#include <fstream>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int sir[100000];
int main() {
int n, m;
cin>>n;
for (int i = 1; i <= n; i++) {
cin>>sir[i];
}
cin>>m;
int c, x;
for (int i = 1; i <= m; i++) {
cin>>c>>x;
if (c==0) {
int st=1, dr=n+1;
while (st+1<dr) {
int mij=(st+dr)/2;
if (sir[mij]<x) {
st=mij;
} else if (sir[mij]>x) {
dr=mij;
} else {
st=mij;
}
}
if (sir[st]==x) {
cout<<st<<'\n';
} else {
cout<<-1;
}
} else if (c==1) {
int st=1, dr=n+1;
while (st+1<dr) {
int mij=(st+dr)/2;
if (sir[mij]<x) {
st=mij;
} else if (sir[mij]>x) {
dr=mij;
} else {
st=mij;
}
}
cout<<st<<'\n';
} else if (c==2) {
int st=1, dr=n+1;
while (st+1<dr) {
int mij=(st+dr)/2;
if (sir[mij]<x) {
st=mij;
} else if (sir[mij]>x) {
dr=mij;
} else {
dr=mij;
}
}
cout<<dr<<'\n';
}
}
return 0;
}