Pagini recente » Cod sursa (job #2286465) | Cod sursa (job #3040470) | Cod sursa (job #20377) | Cod sursa (job #3284637) | Cod sursa (job #194442)
Cod sursa(job #194442)
#include <fstream.h>
#define Nmax 100001
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,v[Nmax];
int quest1(int x)
{
int st,dr,mijl;
st=1,dr=n;
while (st<=dr)
{
mijl=(st+dr)/2;
if (v[mijl]>x)
dr=mijl-1;
else
if (v[mijl]<x)
st=mijl+1;
else
return mijl;
}
return -1;
}
int quest2(int x)
{
int st,dr,mijl,i;
st=1,dr=n;
i=0;
while (st<=dr)
{
mijl=(st+dr)/2;
if (v[mijl]<=x)
{
st=mijl+1;
i=mijl;
}
else
dr=mijl-1;
}
return i;
}
int quest3(int x)
{
int st,dr,mijl,i;
st=1,dr=n;
i=0;
while (st<=dr)
{
mijl=(st+dr)/2;
if (v[mijl]>=x)
{
dr=mijl-1;
i=mijl;
}
else
st=mijl+1;
}
return i;
}
int main()
{
int i;
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
f>>m;
int question,nr;
for (i=1;i<=m;i++)
{
f>>question>>nr;
if (question==0)
g<<quest1(nr);
else
if (question==1)
g<<quest2(nr);
else
g<<quest3(nr);
g<<"\n";
}
return 0;
}