Pagini recente » Cod sursa (job #1931875) | Cod sursa (job #275521) | Cod sursa (job #2918228) | Cod sursa (job #2423651) | Cod sursa (job #1150482)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,a[1001],i,ex,v,m;
int cautMaxim(int v);
int cautMinim(int v);
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
fin>>m;
for(i=1;i<=m;i++)
{
fin>>ex>>v;
if(ex==0)
{
fout<<cautMaxim(v)<<'\n';
}
if(ex==1)
{
fout<<cautMaxim(v)<<'\n';
}
if(ex==2)
{
fout<<cautMinim(v)<<'\n';
}
}
}
int cautMaxim(int x)
{
int p=1,u=n,mid;
while(p<=u)
{
mid=(p+u)/2;
if(x>=a[mid])
{
p=mid+1;
}
else
{
u=mid-1;
}
}
if (a[u]==x)
return u;
else
return -1;
}
int cautMinim(int x)
{
int p=1,u=n,mid;
while (p<=u)
{
mid=(p+u)/2;
if (x<=a[mid])
{
u=mid-1;
}
else
{
p=mid+1;
}
}
if (a[p]==x)
return p;
else
return -1;
}