Pagini recente » Cod sursa (job #2058859) | Cod sursa (job #749500) | Cod sursa (job #2990055) | Cod sursa (job #39175) | Cod sursa (job #2913654)
#include <fstream>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout ("cautbin.out");
int n,m,a[100001];
int solve(int cer,int nr){
if (cer == 0)
{
int poz;
int st= 1,dr = n, mij;
while (st<=dr){
mij = st + (dr-st)/2;
if (a[mij] == nr)
poz = mij;
if (mij <= nr)
st = mij +1;
else
dr = mij - 1;
}
return poz;
}
else if (cer == 1){
int st = 1, dr = n,mij,poz;
while (st <=dr){
mij = st + (dr-st)/2;
if (a[mij] <= nr)
{
st = mij +1;
poz = mij;
}
else
dr = mij -1;
}
return poz;
}
else if (cer == 2){
int st = 1, dr = n,mij,poz;
while (st <=dr){
mij = st + (dr-st)/2;
if (a[mij] >=nr)
{
poz = mij;
dr = mij -1;
}
else
st = mij +1;
}
return poz;
}
}
int main(){
cin >>n;
for (int i = 1;i <=n;++i)
cin >> a[i];
cin >> m;
for (int i = 1;i <=m;++i)
{
int x,k;
cin >> x>>k;
cout << solve(x,k) << endl;
}
}