Pagini recente » Istoria paginii runda/cocalari_danseaza_2014/clasament | Cod sursa (job #2418714) | Cod sursa (job #2501976) | Cod sursa (job #2105812) | Cod sursa (job #1023145)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("cautbin.in");
ofstream g ("cautbin.out");
int n, v[100001];
int bin_search(int v[], int n, int x)
{
int i, pas=1<<19;
for (i=0;pas!=0;pas=pas/2)
if(i+pas<=n && v[i+pas]<x)
i=i+pas;
return i+1;
}
int main()
{
f>>n;
int i,x,m,c,poz;
for (i=1;i<=n;i++)
f>>v[i];
f>>m;
for (i=1;i<=m;i++)
{
f>>c>>x;
poz=bin_search(v,n,x);
if(c==0)
{if(v[poz]!=x)
g<<-1<<endl;
else
{
while(v[poz+1]==x)
poz++;
g<<poz<<endl;}
}
if (c==1)
{
while (v[poz+1]==x)
poz++;
g<<poz<<endl;}
if(c==2)
{
while(v[poz-1]==x)
poz--;
g<<poz<<endl;
}
}
f.close();g.close();
return 0;
}