Pagini recente » Cod sursa (job #63773) | Cod sursa (job #2471286) | Cod sursa (job #331522) | Cod sursa (job #321474) | Cod sursa (job #344643)
Cod sursa(job #344643)
#include <iostream.h>
void main()
{
long n,m,inc,sf,mij,pb,x,sir[100000],gasit;
cin>>n;cin>>m;
for(x=1;x<=n;x++)
cin>>sir[x];
while(m!=0)
{ cin>>pb; cin>>x;
inc=1; sf=n; mij=(inc+sf)/2; gasit=0;
if(pb==0)
{ while((inc<=sf)&&(gasit==0))
{ if(x==sir[mij])
{ gasit=1;
cout<<mij;
}
else if(x<=sir[mij]) sf=mij-1;
else inc=mij+1;
}
if (gasit==0) cout<<"-1";
}
if (pb==1)
{ while((inc<=sf)&&(gasit==0))
{ if(x==sir[mij])
{ gasit=1;
cout<<mij;
}
else if(sir[mij-1]<x)
{ cout<<mij-1;
gasit==1;
}
else sf=mij-1;
}
}
if(pb==2)
{ while((inc<=sf)&&(gasit==0))
{ if((sir[mij]>x)&&(sir[mij-1]<x))
{cout<<mij;
gasit=1;
}
else sf=mij-1;
}
}
m--;
}
return 0;
}