Pagini recente » Cod sursa (job #1657803) | Cod sursa (job #2111454) | Cod sursa (job #2720618) | Cod sursa (job #603733) | Cod sursa (job #1837858)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int val,i,j,x,y,t,p,m,n;
int* v;
int caut1(int s,int d,int val)
{
int m;
while(s<=d)
{
m=(s+d)/2;
if(v[m]<=val)
s=m+1;
else
if(v[m]>val)
d=m-1;
}
if(v[m]>val)
m--;
if(v[m]==val)
return m;
return -1;
}
int caut2(int s,int d,int val)
{
int m;
while(s<d)
{
m=(s+d)/2;
if(v[m]>val)
d=m;
else
if(v[m]<=val)
s=m+1;
}
if(v[m]>val)
m--;
if(v[m]<=val)
return m;
}
int caut3(int s,int d,int val)
{
int m;
while(s<d)
{
m=(s+d)/2;
if(v[m]<val)
s=m+1;
else
d=m;
}
if(v[m]<val)
m++;
return m;
}
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)<<endl;
}
else
if(i==1)
{
g<<caut2(1,n,j)<<endl;
}
else
if(i==2)
{
g<<caut3(1,n,j)<<endl;
}
p--;
}
}