Pagini recente » Cod sursa (job #780153) | Cod sursa (job #1520868) | Cod sursa (job #1607502) | Cod sursa (job #1212049) | Cod sursa (job #2844716)
#pragma region
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_set>
#include <unordered_map>
#include <map>
typedef unsigned long long ull;
typedef long long ll;
typedef unsigned int uint;
#define endl '\n'
using namespace std;
#if 1
#include <fstream>
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
#define cin fin
#define cout fout
#endif
#pragma endregion
int a[100000] = {1,2,2,2,3,4,7,8,8,8,8,10};
int n;
int Cb(int x)
{
int st = 0, dr = n-1;
int p = -1;
while (st <= dr)
{
int md = (st + dr) / 2;
if (a[md] == x)
{
p = md;
st = md + 1;
}
else if (a[md] > x)
dr = md - 1;
else
st = md + 1;
}
return p;
}
int Cb2(int x)
{
int st = 0, dr = n-1;
int p = -1;
while (st <= dr)
{
int md = (st + dr) / 2;
if (a[md] <= x)
{
p = md;
st = md + 1;
}
else
dr = md - 1;
}
return p;
}
int Cb3(int x)
{
int st = 0, dr = n-1;
int p = -1;
while (st <= dr)
{
int md = (st + dr) / 2;
if (a[md] >= x)
{
p = md;
dr = md - 1;
}
else
st = md + 1;
}
return p;
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
int k = 0;
while (k--)
{
int cer, nr;
cin >> cer >> nr;
if (cer == 0)
{
cout << Cb(nr) << endl;
}
else if (cer == 1)
{
cout << Cb2(nr) << endl;
}
else if (cer == 2)
{
cout << Cb3(nr) << endl;
}
}
}