Pagini recente » Cod sursa (job #1035208) | Cod sursa (job #170957) | Cod sursa (job #1186993) | Cod sursa (job #1373245) | Cod sursa (job #2282291)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main()
{
int i,n,t,j,st,dr,mij,x,op;
fin >> n;
int v[n+1];
for (i=1;i<=n;i++)
fin >> v[i];
fin >> t;
int out[t+1];
for (j=1;j<=t;j++) {
fin >> op>>x;
st=1;
dr=n;
mij=(st+dr)/2;
if (op==0) {
while (mij!=dr && st!=mij ) {
if (v[mij]<=x)
st=mij;
else
dr=mij;
mij=(st+dr)/2;
}
if (v[mij]==x)
fout << mij << endl;
else
fout<<-1<<endl;
}
else if (op==1) {
while (mij!=dr && st!=mij ) {
if (v[mij]<=x)
st=mij;
else
dr=mij;
mij=(st+dr)/2;
}
fout << mij << endl;
}
else if (op==2) {
while (mij!=dr && st!=mij) {
if (v[mij]>=x)
dr=mij;
else
st=mij;
mij=(st+dr)/2;
}
fout << mij+1 << endl;
}
}
return 0;
}