Pagini recente » Cod sursa (job #752368) | Cod sursa (job #814995) | Cod sursa (job #2516751) | Cod sursa (job #1572159) | Cod sursa (job #1426129)
#include <fstream>
using namespace std;
ifstream f("cautbin.in"); ofstream g("cautbin.out");
int n,m,v[100010],i,j,M,a,b;
void e()
{ i=1;j=n;
while(i<=j)
{ M=(i+j)/2;
if(v[M]<=b)i=M+1;
else j=M-1;
}
M=(i+j)/2;
if(v[M]>b)M--;
if(v[M]==b) g<<M<<"\n";
else g<<"-1"<<'\n';
}
void e1()
{ i=1;j=n;
while(i<j)
{ M=(i+j)/2;
if(v[M]<=b)i=M+1;
else j=M;
}
M=(i+j)/2;
if(v[M]>b)--M;
g<<M<<"\n";
}
void e2()
{ i=1;j=n;
while(i<j)
{ M=(i+j)/2;
if(v[M]<b)i=M+1;
else j=M;
}
M=(i+j)/2;
if(v[M]<b)++M;
g<<M<<"\n";
}
int main()
{ f>>n;
for(i=1;i<=n;i++)f>>v[i];
f>>m;
while(m--)
{ f>>a>>b;
if(a==0)e();
if(a==1)e1();
if(a==2)e2();
}
return 0;
}