Pagini recente » Cod sursa (job #2531669) | Cod sursa (job #218934) | Cod sursa (job #3228399) | Cod sursa (job #1917155) | Cod sursa (job #1388485)
#include<fstream>
using namespace std;
typedef int var;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
var V[100002];
var n;
var MAX;
var rez_1(var val) {
var ind = 0;
for(var i=MAX; i; i>>=1) {
if(i+ind <= n && V[i+ind] <= val)
ind += i;
}
return ind;
}
var rez_0(var val) {
var ind = rez_1(val);
return (V[ind] == val) ? ind : -1;
}
var rez_2(var val) {
var ind = rez_1(val-1);
return ind+1;
}
int main() {
var m, type, val;
fin>>n;
for(var i=1; i<=n; i++) {
fin>>V[i];
}
for(MAX=1; MAX<=n; MAX<<=1);
MAX>>=1;
fin>>m;
while(m--) {
fin>>type>>val;
switch(type) {
case 0: fout<<rez_0(val)<<'\n';break;
case 1: fout<<rez_1(val)<<'\n';break;
case 2: fout<<rez_2(val)<<'\n';break;
}
}
return 0;
}