Pagini recente » Cod sursa (job #991213) | Cod sursa (job #3261917) | Cod sursa (job #2669292) | Cod sursa (job #2612224) | Cod sursa (job #913322)
Cod sursa(job #913322)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("cautbin.in"); ofstream out ("cautbin.out");
int n;
unsigned int* ar;
int binSearch0(int v);
int binSearch1(int v);
int binSearch2(int v);
int main()
{
in >> n;
ar = new unsigned int[n];
for(int i = 0; i < n; i++)
{
in >> ar[i];
}
int k;
in >> k;
while(k--)
{
int t,val;
in >> t >> val;
int x;
switch(t)
{
case 0:x=upper_bound(ar,ar+n,val)-ar;if(x>=0&&x<n&&ar[x]==val)out << x << '\n';else out << -1 << '\n';break;
case 1:out << lower_bound(ar,ar+n,val+1)-ar<<'\n';break;
case 2:out << upper_bound(ar,ar+n,val-1)-ar+1 << '\n';break;
}
}
return 0;
}