Pagini recente » Cod sursa (job #1921066) | Cod sursa (job #441416) | Cod sursa (job #1934522) | Cod sursa (job #2935508) | Cod sursa (job #1835734)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n;
fin>>n;
vector<int> v(n);
for(auto &r : v) fin>>r;
int m;
fin>>m;
while(m--){
int t,x;
fin>>t>>x;
switch(t){
case 0: {
auto upb = upper_bound(v.begin(),v.end(),x);
if(upb!=v.begin()) upb--;
if(*upb == x) fout<<upb-v.begin()+1<<'\n';
else fout<<"-1\n";
} break;
case 1:{
auto upb2 = lower_bound(v.rbegin(),v.rend(),x,std::greater<int>());
fout<<v.rend()-upb2<<'\n';
} break;
case 2:{
auto lob = lower_bound(v.begin(),v.end(),x);
fout<<lob-v.begin()+1<<'\n';
} break;
}
}
}