Mai intai trebuie sa te autentifici.
Cod sursa(job #3215547)
Utilizator | Data | 15 martie 2024 09:48:43 | |
---|---|---|---|
Problema | Cautare binara | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.73 kb |
#include <fstream>
#include <algorithm>
std::ifstream fin("cautbin.in");
std::ofstream fout("cautbin.out");
int v[100001], n, m;
int main(){
fin >> n ;
for(int i = 1; i <= n; i++)
fin >> v[i];
int c, val;
fin >> m;
while(m--){
fin >> c >> val;
if(c == 0){
auto it = std::upper_bound(v + 1, v + n + 1, val);
fout << ((v[it - v - 1] == val) ? it - v - 1 : -1 )<< "\n";
}
else if(c == 1){
auto it = std::lower_bound(v + 1, v + n + 1, val + 1);
fout << it - v - 1 << "\n";
}
else{
auto it = std::upper_bound(v + 1, v + n + 1, val - 1);
fout << it - v << "\n";
}
}
}