Pagini recente » Cod sursa (job #875213) | Cod sursa (job #550888) | Cod sursa (job #285674) | Cod sursa (job #2656208) | Cod sursa (job #2376785)
#include <iostream>
#include <fstream>
using namespace std;
int n,i,v[100001],j,ok,m,p,x,s,d,t;
int main()
{ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1;i<=n;i++) f>>v[i];
f>>m;
for(i=1;i<=m;i++){
f>>p>>x;
s=1;d=n;
if(p==0){
while(v[d]!=x and v[s]!=x){
t=s+(d-s)/2;
if(v[t]<x) s=t+1;
if(v[t]>x) d=t-1;
if(v[t]==x){while(v[t]==x) t++;t--;d=t;s=t;}
}if(v[d]==x)g<<d<<endl;
else g<<-1<<endl;
}if(p==1){while(v[s]<x){
t=s+(d-s)/2;
if(v[t]>x) d=t-1;
if(v[t]<x) s=t+1;
if(v[t]==x){while(v[t]==x)t++;t--;d=t;s=t;}
}g<<s<<endl;
}if(p==2){while(v[s]<x){
t=s+(d-s)/2;
if(v[t]<x) s=t+1;
if(v[t]>x) d=t-1;
if(v[t]==x){while(v[t]==x)t--;t++;d=t;s=t;}
}g<<s<<endl;
}
}
}