Pagini recente » Cod sursa (job #1668447) | Cod sursa (job #756033) | Cod sursa (job #2311838) | Cod sursa (job #143067) | Cod sursa (job #1355247)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int64_t a[100009], n, x, r, m, c;
bool t=true;
int64_t caut(int s, int d,int c)
{ if(s>d) {t=false; return s;}
else
{
int64_t m=(s+d)/2;
if(a[m]==c) return m;
else
{
if(a[m]<c) return caut(m+1,d,c);
else return caut(s,m-1,c);
}
}
}
int main()
{
f>>n;
for(int64_t i=1;i<=n;i++){f>>a[i];} f>>m;
for(int64_t i=1;i<=m;i++)
{
f>>c>>x;
if(!c)
{
r=caut(1,n,x);
if (t) { while (a[r+1]==x)
r++;
g<<r<<'\n';}
else g<<-1<<'\n';
}
if(c==1)
{
r=caut(1,n,x);
if (t) { while (a[r+1]==x)
r++;
g<<r<<'\n';}
else g<<r-1<<'\n';
}
if(c==2)
{
r=caut(1,n,x);
if (t) { while (a[r-1]==x)
r--;
g<<r<<'\n';}
else g<<r<<'\n';
}
}
return 0;
}