Pagini recente » Cod sursa (job #2298065) | Cod sursa (job #2390669) | Cod sursa (job #2883011) | Cod sursa (job #2272019) | Cod sursa (job #1319601)
#include <fstream>
using namespace std;
#define MAX 100003
int v[MAX], n, x, m;
int cautbinMare(){
int st = 1, dr = n, mij;
while(st<=dr){
mij = (st + dr)/2;
if(v[mij]<=x)
st = mij + 1;
else
dr = mij - 1;
}
return dr;
}
int cautbinMic(){
int st = 1, dr = n, mij;
while(st<=dr){
mij = (st + dr)/2;
if(v[mij]<x)
st = mij + 1;
else
dr = mij - 1;
}
return st;
}
int main()
{
int i, tip, rez;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
for(i=1; i<=n; i++)
fin>>v[i];
fin>>m;
for(i=1; i<=m; i++){
fin>>tip>>x;
if(tip==0){
rez = cautbinMare();
if(v[rez] != x)
rez = -1;
}
if(tip==1)
rez = cautbinMare();
if(tip==2){
rez = cautbinMic();
}
fout<<rez<<'\n';
}
return 0;
}