Pagini recente » Cod sursa (job #935916) | Cod sursa (job #1158183) | Cod sursa (job #1628361) | Cod sursa (job #1568595) | Cod sursa (job #932294)
Cod sursa(job #932294)
#include <fstream>
using namespace std;
int n,t,op,x,a[1000],i;
int mai_mic(int x)
{
int st=1,dr=n,pz=0,mij;
while (st<=dr)
{
mij=(st+dr)/2;
if (a[mij]<=x)
{
pz=mij;
st=mij+1;
}
else dr=mij-1;
}
return pz;
}
int mai_mare(int x)
{
int st=1,dr=n,pz=0,mij;
while (st<=dr)
{
mij=(st+dr)/2;
if (a[mij]<x)
st=mij+1;
else
{
pz=mij;
dr=mij-1;
}
}
return pz;
}
int egal(int x)
{
int st=1,dr=n,pz=0,mij;
while (st<=dr)
{
mij=(st+dr)/2;
if (a[mij]==x)
{
st=mij+1;
pz=mij;
}
else
if (a[mij]<x) st=mij+1;
else dr=mij-1;
}
return pz;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
f>>t;
while (t--)
{
f>>op>>x;
if (op==0) g<<egal(x)<<'\n';
else if (op==1) g<<mai_mic(x)<<'\n';
else if (op==2) g<<mai_mare(x)<<'\n';
}
return 0;
}