Pagini recente » Cod sursa (job #1840796) | Cod sursa (job #1356419) | Cod sursa (job #681119) | Cod sursa (job #2149866) | Cod sursa (job #2989558)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main(){
int arraySize, queryCount;
vector<long long> elements;
fin >> arraySize;
elements.resize(arraySize);
for(int i = 0; i < arraySize; i++)
fin >> elements[i];
fin >> queryCount;
for(long long i = 0, queryType, queryValue; i < queryCount; i++){
fin >> queryType >> queryValue;
vector<long long>::iterator indexFound;
if(queryType == 0){
indexFound = upper_bound(elements.begin(), elements.end(), queryValue);
if(*(indexFound - 1) == queryValue)
fout << indexFound - elements.begin() << '\n';
else
fout << "-1\n";
}else if(queryType == 1){
indexFound = upper_bound(elements.begin(), elements.end(), queryValue);
fout << indexFound - elements.begin() << '\n';
}else{
indexFound = lower_bound(elements.begin(), elements.end(), queryValue);
fout << indexFound - elements.begin() + 1 << '\n';
}
}
return 0;
}