Pagini recente » Cod sursa (job #1510210) | Cod sursa (job #2349308) | Cod sursa (job #3180271) | Cod sursa (job #3181610) | Cod sursa (job #1600353)
#include <iostream>
#include <fstream>
using namespace std;
int v[100005], n, m;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
void c(int x, int par)
{
int ma = -1, l = 1, r = n, mid;
while(l < r)
{
mid = (l+r+1)/2;
if(v[mid] > x)
r = mid-1;
else
l = mid;
}
switch(par)
{
case 0:{if(v[l] != x) g << -1 << '\n'; else g << l << '\n'; break;}
case 1:{g << l << '\n'; break;}
case 2:{g << l+1 << '\n'; break;}
}
}
void c_2(int x)
{
int ma = -1, l = 1, r = n, mid;
while(l < r)
{
mid = (l+r)/2;
if(v[mid] >= x)
r = mid;
else
l = mid+1;
}
g << l;
}
int main()
{
f >> n;
for(int i = 1; i <= n; ++i)
f >> v[i];
f >> m;
for(int i = 1; i <= m; ++i)
{
int x, y;
f >> x >> y;
switch(x)
{
case 0:{c(y, 0); break;}
case 1:{c(y, 1); break;}
case 2:{c_2(y); break;}
}
}
return 0;
}