Pagini recente » Cod sursa (job #801096) | Utilizatori inregistrati la Infoarena Monthly 2012 - Runda 6 | Cod sursa (job #1196579) | Cod sursa (job #2227768) | Cod sursa (job #1835648)
#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 upb = upper_bound(v.begin(),v.end(),x);
if(upb!=v.begin()) upb--;
fout<<upb-v.begin()+1<<'\n';
} break;
case 2:{
auto lob = lower_bound(v.begin(),v.end(),x);
fout<<lob-v.begin()+1<<'\n';
} break;
}
}
}