Pagini recente » Cod sursa (job #1703514) | Cod sursa (job #770844) | Cod sursa (job #1560766) | Istoria paginii runda/aicluj_cls10/clasament | Cod sursa (job #2985789)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100005];
int n;
void citire()
{
int i;
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
}
}
int cautbinara1(int x)
{
int y;
y = upper_bound(v+1,v+n+1,x)-v-1;
if(y<=n && y>=1 && v[y]==x)
return y;
else return -1;
}
int cautbinara2(int x)
{
int y;
y = lower_bound(v+1,v+n+1,x+1)-v-1;
return y;
}
int cautbinara3(int x)
{
int y;
y = upper_bound(v+1,v+n+1,x-1)-v;
return y;
}
int main()
{
citire();
int M,intr,x;
f>>M;
for(int i=1;i<=M;i++)
{
f>>intr>>x;
if(intr==0)
g<<cautbinara1(x)<<endl;
if(intr==1)
g<<cautbinara2(x)<<endl;
if(intr==2)
g<<cautbinara3(x)<<endl;
}
}