Pagini recente » Cod sursa (job #2110171) | Cod sursa (job #1824557) | Cod sursa (job #1425712) | Cod sursa (job #2291553) | Cod sursa (job #2793433)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
#define cin fin
#define cout fout
#define N 20
int n, q, v[N], cerinta, x;
int caut0(int st, int dr, int val)
{
int mij;
while(st <= dr)
{
mij = (st+dr)/2;
if(v[mij] <= val)st = mij+1;
else dr = mij-1;
}
mij = (st+dr)/2;
if(v[mij] > val)mij--;
if(v[mij] == val)return mij;
else return -1;
}
int caut1(int st, int dr, int val)
{
int mij;
while(st <= dr)
{
mij = (st+dr)/2;
if(v[mij] <= val)st = mij+1;
else dr = mij;
}
mij = (st+dr)/2;
if(v[mij] > val)mij--;
return mij;
}
int caut2(int st, int dr, int val)
{
int mij;
while(st <= dr)
{
mij = (st+dr)/2;
if(v[mij] <= val)st = mij+1;
else dr = mij;
}
mij = (st+dr)/2;
if(v[mij] < val)mij++;
return mij;
}
int main()
{
cin >> n;
for(int i = 1 ; i <= n ; i++)
{
cin >> v[i];
}
cin >> q;
for( ; q ; q--)
{
cin >> cerinta >> x;
if(cerinta == 0)
{
cout << caut0(1,n,x);
}
else if(cerinta == 1)
{
cout << caut1(1,n,x);
}
else if(cerinta == 2)
{
cout << caut2(1,n,x);
}
cout << '\n';
}
return 0;
}