Pagini recente » Cod sursa (job #2396879) | Cod sursa (job #1676789) | Cod sursa (job #2220244) | Cod sursa (job #1649103) | Cod sursa (job #2224816)
#include <iostream>
#include <fstream>
using namespace std;
int num[100005];
int caut(int st, int dr, int val){
int mid;
while(st <= dr){
mid = (st + dr) / 2;
if(num[mid] > val)
dr = mid - 1;
else
st = mid + 1;
}
return st;
}
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n;
fin >> n;
for(int i = 1; i <= n; ++i)
fin >> num[i];
int m, op, x;
fin >> m;
for(int q = 1; q <= m; ++q){
fin >> op >> x;
int mid = caut(1, n, x);
if(op == 0){
while(num[mid] == x && mid <= n)
mid++;
mid--;
}
if(op == 1){
while(num[mid] == x && mid <= n)
mid++;
mid--;
}
if(op == 2){
if(num[mid] == x)
mid++;
}
fout << mid << "\n";
}
return 0;
}