Pagini recente » Cod sursa (job #1291055) | Cod sursa (job #2059434) | Cod sursa (job #2982857) | Cod sursa (job #1318492) | Cod sursa (job #2533038)
#include <fstream>
using namespace std;
int n,i,TESTE,caz,x,st,dr,mid,v[100010];
int main () {
ifstream fin ("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
for (i=1;i<=n;i++){
fin>>v[i];
}
fin>>TESTE;
for (i=1;i<=TESTE;i++) {
fin>>caz>>x;
if (caz==0) {
st=1;
dr=n;
while (st<=dr) {
int mid=(st+dr)/2;
if (v[mid]<=x){
st=mid+1;
}
else{
dr=mid-1;
}
}
if (dr>0&&v[dr]==x){
fout<<dr<<"\n";
}
else{
fout<<-1<<"\n";
}
}
if (caz==1){
st=1;
dr=n;
while (st<=dr){
int mid=(st+dr)/2;
if (v[mid]<=x){
st=mid+1;
}
else{
dr=mid-1;
}
}
fout<<dr<<"\n";
}
if (caz==2){
st=1;
dr=n;
while (st<=dr){
int mid=(st+dr)/2;
if (v[mid]<x){
st=mid+1;
}
else{
dr=mid-1;
}
}
fout<<st<<"\n";
}
}
return 0;
}