Pagini recente » Cod sursa (job #1364693) | Cod sursa (job #1557804) | Cod sursa (job #1877714) | Cod sursa (job #3254567) | Cod sursa (job #2070190)
#include<fstream>
using namespace std;
int v[100000];
int cautb0(int p, int u, int key)
{
int m=(p+u)/2;
while(p+1 < u)
{
m=(p+u)/2;
if(key<v[m])
u=m-1;
else p=m;
}
if (v[u] <= key)
return u;
return p;
}
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int N, M;
fin >> N;
for(int i=1; i<=N; i++)
fin >> v[i];
fin >> M;
for(int i=1; i<=M; ++i)
{
int type, x;
fin >> type >> x;
if(type==0)
if(v[cautb0(v[1], N, x)]!=v[x])
fout << "-1" << '\n';
else fout << cautb0(v[1], N, x) << '\n';
if(type==1)
fout << cautb0(1, N, x) << '\n';
if(type==2)
fout << cautb0(1, N, x-1)+1 << '\n';
}
return 0;
}