Pagini recente » Cod sursa (job #1909657) | Cod sursa (job #1559459) | Cod sursa (job #939025) | Cod sursa (job #2771064) | Cod sursa (job #2404137)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int main()
{
vector<int> v;
int n,k;
in>>n;
for (int i=1;i<=n;++i)
in>>k,v.push_back(k);
vector<int>::iterator a;
int m;
in>>m;
for (int i=1;i<=m;++i)
{
in>>k;
if (k==0)
{
int l;
in>>l;
if (!binary_search(v.begin(),v.end(),l))
{
out<<-1;
continue;
}
else
{
a=lower_bound(v.begin(),v.end(),l);
while (v[*a]==l)
a++;
a--;
out<<*a+1<<'\n';
}
}
if (k==1)
{
int l;
in>>l;
a=lower_bound(v.begin(),v.end(),l);
while (v[*a]==l)
a++;
a--;
out<<*a+1<<'\n';
}
if (k==2)
{
int l;
in>>l;
if (binary_search(v.begin(),v.end(),l))
{
a=upper_bound(v.begin(),v.end(),l);
a--;
out<<*a-1<<'\n';
}
else
{
a=upper_bound(v.begin(),v.end(),l);
out<<*a-1<<'\n';
}
}
}
return 0;
}