Pagini recente » Cod sursa (job #1928954) | Cod sursa (job #2356215) | Cod sursa (job #828536) | Cod sursa (job #2124055) | Cod sursa (job #2289876)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("coutbin.out");
int n,st,dr,mid,i,j,k,x,m;
int main()
{
fin >> n;
int v[n+3];
for (i=1;i<=n;i++){
fin >> v[i];
}
fin >> m;
for (i=1;i<=m;i++){
fin >> x >> k;
if (x==0){
st=1;
dr=n;
while (st<dr){
mid=(st+dr+1)/2;
if(v[mid]>k){
dr=mid-1;
}
else{
st=mid;
}
}
}
if (v[dr]==k){
fout << dr << endl;
}
else{
fout <<-1 << endl;
}
i++;
if (x==1){
st=1;
dr=n;
while (st<dr){
mid=(st+dr+1)/2;
if (v[mid]>k){
dr=mid-1;
}
else{
st=mid;
}
}
}
if (v[dr]==k){
fout << dr << endl;
}
else{
fout <<dr-1 << endl;
}
i++;
if (x==2){
st=1;
dr=n;
while (st<dr){
mid=(st+dr+1)/2;
if (v[mid]>k){
dr=mid-1;
}
else{
st=mid+1;
}
}
fout << mid;
}
}
return 0;
}