Pagini recente » Cod sursa (job #2509991) | Cod sursa (job #183880) | Cod sursa (job #1275253) | Monitorul de evaluare | Cod sursa (job #441766)
Cod sursa(job #441766)
#include<fstream>
#include<vector>
#include<algorithm>
#include<cstdio>
#define pb push_back
#define infi 2147483647
using namespace std;
int n, m;
vector<int> v;
vector<int>::iterator it;
int main()
{
int i, op, x;
ifstream fin("cautbin.in");
freopen("cautbin.out", "w", stdout);
fin>>n;
for(i=1;i<=n;++i)
fin>>x, v.pb(x);
fin>>m;
for(i=1;i<=m;++i)
{
fin>>op>>x;
if(!op)
{
it=find(v.begin(), v.end(), x);
if(it!=v.end())
{
//while(*(++it)==x);
printf("%d\n", it-v.begin());
}
else
printf("-1\n");
}
else if(op==1)
{
it=upper_bound(v.begin(), v.end(), x);
printf("%d\n", it-v.begin());
}
else
{
it=lower_bound(v.begin(), v.end(), x);
printf("%d\n", it+1-v.begin());
}
}
return 0;
}