Pagini recente » Cod sursa (job #220689) | Istoria paginii runda/road-to-sepi-1./clasament | Cod sursa (job #1914417) | Cod sursa (job #2286611) | Cod sursa (job #1998535)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ ifstream f("cautbin.in");
ofstream g("cautbin.out");
int N, M, i, j, k, x, y, v[100000];
f>>N;
for(i=1;i<=N;i++)
f>>v[i];
f>>M;
for(j=1;j<=M;j++){
f>>y>>x;
if(y==0){
int st=1,dr=N;
while(st<=dr){
int mid=st+(dr-st)/2;
if(x<v[mid])
dr=mid-1;
else
st=mid+1;
}
if(v[dr]==x)
g<<dr;
else
g<<"-1";
}
if(y==1){
int st=1,dr=N;
while(st<=dr){
int mid=st+(dr-st)/2;
if(x<v[mid])
dr=mid-1;
else
st=mid+1;
}
g<<dr;
}
if(y==2){
int st=1,dr=N;
while(st<=dr){
int mid=st+(dr-st)/2;
if(x<v[mid])
dr=mid-1;
else
st=mid+1;
}
if(v[dr]<x)
g<<st;
else
{
while(v[dr]==x)
dr--;
}
g<<dr+1;
}
g<<endl;
}
return 0;
}