Pagini recente » Cod sursa (job #1200702) | Cod sursa (job #1992242) | Cod sursa (job #2876538) | Cod sursa (job #478301) | Cod sursa (job #1589527)
#include <iostream>
#include <fstream>
#define nmax 100003
using namespace std;
int n, m, V[nmax], act, x;
int cb_0(int x)
{
int st=0, dr=n+1,mid;
while (dr-st!=1)
{
mid = (dr+st)/2;
if (V[mid] <= x) st = mid;
else dr = mid;
}
if (V[st] == x) return st;
return -1;
}
int cb_1(int x)
{
int st=0, dr=n+1,mid;
while (dr-st!=1)
{
mid = (dr+st)/2;
if (V[mid] <= x) st = mid;
else dr = mid;
}
return st;
}
int cb_2(int x)
{
int st=0, dr=n+1,mid;
while (dr-st!=1)
{
mid = (dr+st)/2;
if (V[mid] < x) st = mid;
else dr = mid;
}
return dr;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f >> n;
for(int i=1; i<=n; i++)
{
f >> V[i];
}
f >> m;
for(int i=1; i<=m; i++)
{
f >> act >> x;
if (act == 0) g << cb_0(x) << "\n";
else
if (act == 1) g << cb_1(x) << "\n";
else g << cb_2(x) << "\n";
}
f.close();
g.close();
return 0;
}