Pagini recente » Cod sursa (job #3270639) | Cod sursa (job #3130682) | Cod sursa (job #1934842) | Cod sursa (job #2256375) | Cod sursa (job #1846929)
#include <iostream>
#include <fstream>
using namespace std;
int a[1003];
//caut pozitia cea mai mare a lui x
int CB0(int st, int dr, int x)
{
int mij, p;
p=-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(x==a[mij])
{
p=mij;
st=mij+1;
}
else if (x<a[mij]) dr=mij-1;
else st=mij+1;
}
}
int CB1(int st, int dr, int x)
{
int mij, p;
p=-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(a[mij]<=x)
{
p=mij;
st=mij+1;
}
else dr=mij-1;
}
}
int CB2(int st, int dr, int x)
{
int mij, p;
p=-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(a[mij]>=x)
{
p=mij;
dr=mij-1;
}
else st=mij+1;
}
}
int main()
{
int n,i,Q,op,x;
ifstream fin ("CB1");
ofstream fout ("CB1.out");
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
fin>>Q;
for(i=1;i<=Q;i++)
{
fin>>op>>x;
if(op=0) fout<<CB0(i,n,x)<<"\n";
if(op=1) fout<<CB1(i,n,x)<<"\n";
if(op=2) fout<<CB2(i,n,x)<<"\n";
}
fin.close();
fout.close();
return 0;
}