Pagini recente » Cod sursa (job #585205) | Cod sursa (job #343167) | Cod sursa (job #3141688) | Cod sursa (job #400860) | Cod sursa (job #1646610)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n, v[100005], Q, T, x;
void caut1(int x){
int st = 0;
int dr = n + 1;
int mij;
while(dr - st != 1){
mij = st + (dr - st) / 2;
if(v[mij] <= x) st = mij;
else dr = mij;
}
if(v[st] == x) g << st << "\n";
else g << "-1\n";
}
void caut2(int x){
int st = 0;
int dr = n + 1;
int mij;
while(dr - st != 1){
mij = st + (dr - st) / 2;
if(v[mij] <= x) st = mij;
else dr = mij;
}
g << st << "\n";
}
void caut3(int x){
int st = 0;
int dr = n + 1;
int mij;
while(dr - st != 1){
mij = st + (dr - st) / 2;
if(v[mij] >= x) dr = mij;
else st = mij;
}
g << dr << "\n";
}
int main()
{
f >> n;
for(int i = 1; i <= n; i++) f >> v[i];
f >> T;
for(int i = 1; i <= T; i++){
f >> Q >> x;
if(Q == 0) caut1(x);
else if(Q == 1) caut2(x);
else caut3(x);
}
return 0;
}