Pagini recente » Cod sursa (job #2059563) | Cod sursa (job #2983524) | Cod sursa (job #371851) | Cod sursa (job #2752635) | Cod sursa (job #2067815)
#include <fstream>
using namespace std;
int poz[100003], x[100003], dr[100003], st[100003];
int dreapta(int x1, int i)
{
while(i>0)
{
if(x[i]<=x1)
{
return i;
}
i--;
}
return 0;
}
int stanga(int x1, int n)
{
int i=1;
while(i<=n)
{
if(x[i]>=x1)
return i;
i++;
}
return 0;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int i, n, m, j, y;
f>>n;
for(i=1; i<=n; i++)
{
f>>x[i];
poz[x[i]]=i;
//dr[i]=dreapta(x[i], n);
}
for(i=1; i<=n; i++)
{
dr[i]=dreapta(x[i], n);
st[i]=stanga(x[i], n);
}
// for(i=1; i<=n; i++)
// g<<st[i]<<' ';
f>>m;
for(i=1; i<=m; i++)
{
f>>j>>y;
if(j==0)
{
if(poz[y]>0)
g<<poz[y]<<'\n';
else g<<"-1"<<'\n';
}
else if(j==1)
{
if(dr[y]>0)
g<<dr[y]<<'\n';
else g<<"-1"<<'\n';
}
else
{
if(st[y]>0)
g<<st[y]<<'\n';
else g<<"-1"<<'\n';
}
}
return 0;
}