Pagini recente » Cod sursa (job #1843446) | Cod sursa (job #2397860) | Cod sursa (job #1139761) | Cod sursa (job #1354383) | Cod sursa (job #2788636)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int a[100002], b[100002][3];
int main()
{
int n, li, lf, m, x, M;
f>>n;
for(int i=1; i<=n; i++)
{
f>>a[i];
// cout<<a[i]<<" ";
}
f>>M;
for(int i=0; i<M; i++)
f>>b[i][0]>>b[i][1];
for(int i=0; i<M; i++)
{
if(b[i][0]==0)
{
x=b[i][1];
li=1;
lf=n;
m=(li+lf)/2;
while(li<=lf)
{
if(x>=a[m])
li=m+1;
else
lf=m-1;
m=(li+lf)/2;
}
if(lf<=n && a[lf]==x) g<<lf<<"\n";
else g<<-1<<"\n";
}
if(b[i][0]==1)
for(int i=n-1; i>=0; i--)
if(a[i]<=x)
{
g<<i<<"\n";
break;
}
if(b[i][0]==2)
for(int i=0; i<n; i++)
if(a[i]>=x)
{
g<<i;
break;
}
}
}