Pagini recente » Istoria paginii runda/oni_mixed/clasament | Cod sursa (job #1900217) | Cod sursa (job #1712686) | Istoria paginii utilizator/hellboy_florin | Cod sursa (job #2072496)
#include <iostream>
#include <fstream>
using namespace std;
int n, m, x, a[100002];
ifstream fin("cautbin.in");
ofstream fout("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()
{
fin>>n;
int i, cod;
for (i=1; i<=n; i++) fin>>a[i];
fin>>m;
for (i=1; i<=m; i++)
{
fin>>cod>>x;
switch(cod)
{
case 0:
fout << caut0(x) << "\n";
break;
case 1:
fout << caut1(x) << "\n";
break;
case 2:
fout << caut2(x) << "\n";
break;
}
}
return 0;
}