Pagini recente » Diferente pentru calibrare-limite-de-timp intre reviziile 16 si 221 | Diferente pentru calibrare-limite-de-timp intre reviziile 221 si 215 | Monitorul de evaluare | Istoria paginii utilizator/mirceamaria1807 | Cod sursa (job #2866964)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in"); ofstream g("cautbin.out");
int n,m,a[100005];
int main()
{ f>>n;
for(int i = 1; i <= n; i++) f>> a[i];
f>> m;
while (m--)
{ int op, x;
f>> op >> x;
switch (op)
{ case 0:
{ int p = binary_search(a + 1, a + n + 1, x);
if (p) g<<upper_bound(a+1,a+n+1,x)-a-1 << "\n"; else g<<"-1\n";
break;
}
case 1: { g<< upper_bound(a + 1, a + n + 1, x) - a - 1 << "\n"; break;}
case 2: { g<< lower_bound(a + 1, a + n + 1, x) - a << "\n"; break; }
}
}
g.close(); f.close(); return 0;
}