Pagini recente » Cod sursa (job #209058) | Cod sursa (job #1424799)
#include <fstream>
using namespace std;
int v[100002];
int main()
{
ifstream f ("cautbin.in");
ofstream g ("cautbin.out");
int i,pas,n,j,k,m,nr,l=1,x;
f>>n;
for(i=0; i<n; i++){
f>>v[i];
}
f>>x;
while(l<=n)
l*=2;
pas=l;
for(i=0; i<x; i++){
pas=l;
f>>m;
f>>nr;
j=0;
if(m==0){
while(pas!=0){
if(j+pas<n && v[j+pas]<=nr)
j+=pas;
pas>>=1;
}
if(v[j]!=nr)
j=-1;
else
j++;
}
else if(m==1){
while(pas!=0){
if(j+pas<=n && v[j+pas]<=nr)
j+=pas;
pas>>=1;
}
j++;
}
else if(m==2){
while(pas!=0){
if(j+pas<=n && v[j+pas]<nr)
j+=pas;
pas>>=1;
}
j++;
}
g<<j<<" ";
}
return 0;
}