Pagini recente » Cod sursa (job #3241142) | Cod sursa (job #1653167) | Cod sursa (job #1320612) | Cod sursa (job #1194985) | Cod sursa (job #2799207)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
vector <int> v;
int st, dr, mid, n;
void cb0(int x)
{
st = 0;
dr = n - 1;
while(st <= dr)
{
mid = (st + dr) / 2;
if(v[mid] > x)
dr = mid - 1;
else
st = mid + 1;
}
if(v[dr] == x)
fout << dr + 1 << '\n';
else
fout << -1 << '\n';
}
void cb1( int x)
{
st = 0;
dr = n - 1;
while (st <= dr)
{
mid = (st + dr) / 2;
if (v[mid] > x)
{
dr = mid - 1;
}
else
{
st = mid + 1;
}
}
fout << dr + 1<< '\n';
}
void cb2(int x)
{
st = 0;
dr = n - 1;
while ( st <= dr)
{
mid = (st + dr) / 2;
if (v[mid] >= x)
dr = mid - 1;
else
st = mid + 1;
}
fout << st + 1<< '\n';
}
int main()
{
int x, m, nr, t;
fin >> n;
for (int i = 0; i < n; i++)
{
fin >> x;
v.push_back(x);
}
fin >> m;
for ( int i = 1; i <= m; i++)
{
fin >> t >> nr;
if(t == 0)
cb0(nr);
else if(t == 1)
cb1(nr);
else if(t == 2)
cb2(nr);
}
return 0;
}