Pagini recente » Cod sursa (job #2842696) | Cod sursa (job #2289037) | Cod sursa (job #450322) | Cod sursa (job #1168727) | Cod sursa (job #1838043)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int i,j,n,m,k,t,p,r;
int* v;
int caut1(int s,int d,int val)
{
int m;
int poz=-1;
while(s<=d)
{
m=(s+d)/2;
if(v[m]==val)
{
poz=m;
s=m+1;
}
else
if(v[m]<val)
{
s=m+1;
}
else
{
d=m-1;
}
}
return poz;
}
int caut2(int s,int d,int val)
{
int m;
int poz=-1;
while(s<=d)
{
m=(s+d)/2;
if(v[m]<=val)
{
poz=m;
s=m+1;
}
else
if(v[m]>val)
{
d=m-1;
}
}
return poz;
}
int caut3(int s,int d,int val)
{
int m;
int poz=-1;
while(s<=d)
{
m=(s+d)/2;
if(v[m]>=val)
{
poz=m;
d=m-1;
}
else
if(v[m]<val)
{
s=m+1;
}
}
return poz;
}
int main()
{
f>>n;
v=new int[n+4];
for(i=1;i<=n;i++)
f>>v[i];
f>>p;
while(p!=0)
{
f>>i>>j;
if(i==0)
{
g<<caut1(1,n,j)<<"\n";
}
else
if(i==1)
{
g<<caut2(1,n,j)<<"\n";
}
else
if(i==2)
{
g<<caut3(1,n,j)<<"\n";
}
p--;
}
}