Pagini recente » Cod sursa (job #2217741) | Cod sursa (job #1760325) | Cod sursa (job #2470933) | Cod sursa (job #1540971) | Cod sursa (job #1118104)
#include <iostream>
#include <fstream>
#define nmax 100001
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int hi,lo,mid;
int n,v[nmax];
void bin01(int b, bool y){
hi=n+1;
lo=0;
while (hi-lo>1){
mid=lo+(hi-lo)/2;
if (b>=v[mid]) lo=mid;
else hi=mid;
}
if (!y){
if (v[lo]==b) out << lo << "\n";
else out << -1 << "\n";
} else
out << lo << "\n";
}
void bin2(int b){
hi=n+1;
lo=0;
while (hi-lo>1){
mid=lo+(hi-lo)/2;
if (b<=v[mid]) hi=mid;
else lo=mid;
}
out << hi << "\n";
}
int main(){
int i,a,x,t;
in >> n;
for (i=1; i<=n; i++)
in >> v[i];
v[n+1]=v[i]+1;
in >> t;
for (i=1; i<=t; i++){
in >> a >> x;
if (a<2)
bin01(x, a);
else
bin2(x);
}
return 0;
}