Pagini recente » Cod sursa (job #631657) | Cod sursa (job #1134863) | Cod sursa (job #1649313) | Cod sursa (job #2527445) | Cod sursa (job #2427845)
#include <bits/stdc++.h>
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[200001], pos;
int cautbin(int x)
{
int pw, n;
for(pw=1<<20; pw>0; pw=pw/2)
if(pos+pw<=n && v[pos+pw]<=x)
pos=pos+pw;
return pos;
}
int main()
{
int n, x, sub, i, t;
in>>n;
for(i=1; i<=n; i++)
{
in>>v[i];
}
int M;
in>>M;
for(i=1; i<=M; i++)
{
in>>t;
sub=cautbin(x);
if(t==0 )
{
sub=cautbin(x);
if(v[sub]==x){
out<<sub<<'/n';}
else
out<<-1<<'/n';
}
if(t==1)
{
sub=cautbin(x);
out<<sub<<'/n';
}
if(t==2)
{
sub=cautbin(x-1);
out<<sub+1<<'/n';
}
}
return 0;
}