Pagini recente » Cod sursa (job #960636) | Cod sursa (job #2109427) | Cod sursa (job #3188447) | Cod sursa (job #1384481) | Cod sursa (job #792820)
Cod sursa(job #792820)
#include<fstream>
using namespace std;
int main()
{
int n,a[100],x,i,li,ls,mij,poz,intreb,nr;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
fin>>nr;
for(i=1;i<=nr;i++)
{
fin>>intreb>>x;
li=1;
ls=n;
mij=(1+n)/2;poz=-1;
while(li<=ls&&poz==-1)
{
mij=(li+ls)/2;
if(a[mij]>x)
ls=mij;
else
if(a[mij]<x) li=mij;
else
poz=mij;}
if (intreb==0)
if (poz==-1) fout<<-1<<"\n";
else
{
while(a[poz+1]==x && poz<n)
poz++;
fout<<poz<<"\n";
}
if (intreb==1)
{
if (poz==-1)
while(a[mij+1]>=x&&mij<n) mij++;
else
while(a[mij+1]==x&&mij<n) mij++;
fout<<mij<<"\n";
}
if (intreb==2)
{
if (poz==-1)
while(a[mij-1]>=x&&mij>1) mij--;
else
while(a[mij-1]==x&&mij>1) mij--;
fout<<mij<<"\n";
}
}
return 0;}