Pagini recente » Borderou de evaluare (job #2707029) | Cod sursa (job #273523) | Cod sursa (job #1980221) | Cod sursa (job #2467999) | Cod sursa (job #1902825)
#include<fstream>
#include<algorithm>
#define DMAX 100001
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,m,a[DMAX],i,x,poz,intrebare;
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
fin>>m;
for(i=1;i<=m;i++)
{
fin>>intrebare>>x;
if(intrebare==0)
{ //cea mai mare pozitie a unui element = x
poz=upper_bound(a+1,a+n+1,x)-a-1;
if(poz>=1 && poz<=n && a[poz]==x)
fout<<poz<<'\n';
else
fout<<-1<<'\n';
}
else if(intrebare==1)
{//cea mai mare pozitie a unui element <= x
poz=upper_bound(a+1,a+n+1,x)-a-1;
fout<<poz<<'\n';
}
else
{//cea mai mica pozitie a unui element >= x
poz=upper_bound(a+1,a+n+1,x-1)-a;
fout<<poz<<'\n';
}
}
return 0;
}