Pagini recente » Cod sursa (job #1980483) | Cod sursa (job #2917658) | Cod sursa (job #1205894) | Cod sursa (job #389348) | Cod sursa (job #2459137)
using namespace std;
#include<iostream>
#include<fstream>
int n, m, v[100001], x;
short int intr;
int main() {
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin >> n;
for (int i = 1; i<=n; i++) {
fin >> v[i];
}
fin >> m;
for (int nrintrebare = 1; nrintrebare<=m; nrintrebare++) {
fin >> intr >> x;
int valpoz = 0;
if (intr == 0) {
int st = 1, dr = n;
while (st<=dr) {
int mid = (st+dr)/2;
if (v[mid] < x) {
st = mid+1;
} else if (v[mid] > x) {
dr = mid-1;
} else {
valpoz = mid;
st = mid+1;
}
}
if (valpoz == 0) {
fout << "-1" << endl;
} else {
fout << valpoz << endl;
}
}
if (intr == 1) {
int st = 1, dr = n;
while (st <= dr) {
int mid = (st+dr)/2;
if (v[mid] > x) {
dr = mid-1;
} else {
valpoz = mid;
st = mid+1;
}
}
fout << valpoz << endl;
}
if (intr == 2) {
int st = 1, dr = n;
while (st<=dr) {
int mid = (st+dr)/2;
if (v[mid] < x) {
st = mid+1;
} else {
valpoz = mid;
dr = mid-1;
}
}
fout << valpoz << endl;
}
}
fin.close();
fout.close();
return 0;
}