Pagini recente » Cod sursa (job #3150537) | Cod sursa (job #2481890) | Cod sursa (job #2697436) | Cod sursa (job #2783848) | Cod sursa (job #1118499)
#include <iostream>
#include <fstream>
#define nmax 100001
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int hi,lo,mid;
int n,v[nmax];
void bin01(int b, bool y)
{
hi=n+1;
lo=0;
while (hi-lo>1)
{
mid=lo+(hi-lo)/2;
if (b>=v[mid])
lo=mid;
else hi=mid;
}
if (!y)
{
if (v[lo]==b)
g<<lo<<"\n";
else
g<<-1<<"\n";
} else
g<<lo<<"\n";
}
void bin2(int b)
{
hi=n+1;
lo=0;
while (hi-lo>1)
{
mid=lo+(hi-lo)/2;
if(b<=v[mid])
hi=mid;
else lo=mid;
}
g<<hi<<"\n";
}
int main()
{
int i,a,x,t;
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
v[n+1]=v[i]+1;
f>>t;
for (i=1;i<=t;i++){
f>>a>>x;
if(a<2)
bin01(x,a);
else
bin2(x);
}
return 0;
}