Pagini recente » Cod sursa (job #627179) | Cod sursa (job #565998) | Cod sursa (job #673461) | Cod sursa (job #1913497) | Cod sursa (job #2205371)
#include <fstream>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <vector>
#include <stack>
#include <cstring>
#include <queue>
#define MAX 100000
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int32_t myVector[MAX + 27],n, m;
void s01(int32_t k,int32_t x)
{
int32_t left = 1, right = n, mid, pivot = -1;
while (left <= right) {
mid = (right + left) / 2;
if (x >= myVector[mid]) {
pivot = mid;
left = mid + 1;
}
else
right = mid - 1;
}
if (k == 0 && myVector[pivot] != x)
out << "-1";
else
out << pivot << '\n';
}
void s2(int32_t x)
{
int32_t left = 1, right = n, mid, pivot = -1;
while (left <= right) {
mid = (right + left) / 2;
if (myVector[mid] >= x) {
pivot = mid;
right = mid - 1;
}
else
left = mid + 1;
}
out << pivot << '\n';
}
int main()
{
int16_t c;
int32_t x;
in >> n;
for (int32_t i = 1; i <= n; i++) {
in >> myVector[i];
}
in >> m;
while (m--) {
in >> c >> x;
if (c <= 1) {
s01(c,x);
}
else
s2(x);
}
}