Pagini recente » Cod sursa (job #1948865) | Cod sursa (job #1615663) | Cod sursa (job #1788386) | Cod sursa (job #587245) | Cod sursa (job #941478)
Cod sursa(job #941478)
#include<fstream>
using namespace std;
int a[100001],i,n,m,x,y;
int c0(int x)
{
int l,r,m;
l=1;r=n;
while (l<=r)
{
m=(l+r)/2;
if (a[m]<x)
l=m+1;
else if (a[m]>x)
r=m-1;
else return m;
}
return -1;
}
int c1(int x)
{
int l,r,m;
l=1;r=n;
while (l<=r)
{
m=(l+r)/2;
if (a[m]<=x)
l=m+1;
else if (a[m]>x)
r=m-1;
}
return r;
}
int c2(int x)
{
int l,r,m;
l=1;r=n;
while (l<=r)
{
m=(l+r)/2;
if (a[m]<x)
l=m+1;
else if (a[m]>=x)
r=m-1;
}
return l;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f >> n;
for (i=1;i<=n;i++)
f >> a[i];
f >> m;
for (i=1;i<=m;i++)
{
f >> x >> y;
if (x==0)
g << c0(y) << "\n";
else if (x==1)
g << c1(y) << "\n";
else g << c2(y) << "\n";
}
return 0;
}