Pagini recente » Cod sursa (job #1166932) | Rating Flavius Todoran (flaviu1990) | Cod sursa (job #1207090) | Cod sursa (job #852306) | Cod sursa (job #2401591)
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("cautbin.in");
ofstream so("cautbin.out");
int v[100005];
int main()
{
int n;
si>>n;
for(int i=1; i<=n; ++i) {
si>>v[i];
}
int q;
si>>q;
for(int i=1; i<=q; ++i) {
int a, b;
si>>a>>b;
if(a==0) {
int st=1;
int dr=n;
int mij;
int rez=-1;
while(st<=dr) {
mij=(st+dr)/2;
if(v[mij]==b) {
rez=mij;
st=mij+1;
}
else
if(v[mij]<b) {
st=mij+1;
}
else {
dr=mij-1;
}
}
so<<rez<<'\n';
}
if(a==1) {
int st=1;
int dr=n;
int mij;
int rez=-1;
while(st<=dr) {
mij=(st+dr)/2;
if(v[mij]<=b) {
rez=mij;
st=mij+1;
}
else {
dr=mij-1;
}
}
so<<rez<<'\n';
}
if(a==2) {
int st=1;
int dr=n, mij, rez=-1;
while(st<=dr) {
mij=(st+dr)/2;
if(v[mij]<b) {
st=mij+1;
}
else {
rez=mij;
dr=mij-1;
}
}
so<<rez<<'\n';
}
}
return 0;
}