Pagini recente » Cod sursa (job #2147481) | Cod sursa (job #168930) | Cod sursa (job #898355) | Cod sursa (job #1348285) | Cod sursa (job #1601494)
#include <fstream>
using namespace std;
int v[100005], n, m;
ifstream f("cautbin.in");
ofstream cout("cautbin.out");
void c(int x, int par)
{
int ma = -1, l = 1, r = n, mid;
while(l < r)
{
mid = (l+r+1)/2;
//cout << l << ' ' << r << ' ' << mid << '\n';
if(v[mid] > x)
r = mid-1;
else
l = mid;
}
switch(par)
{
case 0:{if(v[l] != x) cout << -1 << '\n'; else cout << l << '\n'; break;}
case 1:{cout << l << '\n'; break;}
case 2:{cout << r+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;
}
cout << 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(y, 2); break;}
}
}
return 0;
}