Pagini recente » Cod sursa (job #771389) | Cod sursa (job #781260) | Cod sursa (job #419470) | Cod sursa (job #2784444) | Cod sursa (job #2071445)
#include <iostream>
#include <fstream>
using namespace std;
int n, m, x, a[100002];
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int caut0(int c)
{
int li=1, ls=n, mij, poz=-1;
while (li<=ls)
{
mij=li+(ls-li)/2;
if (c==a[mij])
poz=mij;
if (c>=a[mij]) li=mij+1;
else ls=mij-1;
}
return (poz);
}
int caut1(int c)
{
int li=1, ls=n, mij, poz=-1;
while (li<=ls)
{
mij=li+(ls-li)/2;
if (c>=a[mij])
{
poz=mij;
li=mij+1;
}
else ls=mij-1;
}
return (poz);
}
int caut2(int c)
{
int li=1, ls=n, mij, poz=-1;
while (li<=ls)
{
mij=li+(ls-li)/2;
if (c<=a[mij])
{
poz=mij;
ls=mij-1;
}
else li=mij+1;
}
return (poz);
}
int main()
{
f>>n;
int i, cod;
for (i=1; i<=n; i++) f>>a[i];
f>>m;
for (i=1; i<=m; i++)
{
f>>cod>>x;
switch(cod)
{
case 0:
g << caut0(x) << "\n";
break;
case 1:
g << caut1(x) << "\n";
break;
case 2:
g << caut2(x) << "\n";
break;
}
}
return 0;
}