Pagini recente » Cod sursa (job #2574461) | Cod sursa (job #2714835) | Cod sursa (job #2937780) | Cod sursa (job #692030) | Cod sursa (job #715697)
Cod sursa(job #715697)
#include <fstream>
#include <algorithm>
using namespace std;
long M[100005];
int main(void)
{
long N,i,K,a,b;
fstream fin("cautbin.in",ios::in);
fstream fout("cautbin.out",ios::out);
fin >> N;
for (i = 0;i < N;i += 1)
{
fin >> M[i];
}
fin >> K;
for (i = 0;i < K;i += 1)
{
fin >> a >> b;
switch (a)
{
case 0 :
{
long *p = lower_bound(M + 0,M + N,b);
if (*p != b)
{
fout << "-1\n";
}
else
{
while (*(p + 1) == *p)
{
p += 1;
}
fout << ((p - M) + 1) << "\n";
}
}
break;
case 1 :
{
long *p = lower_bound(M + 0,M + N,b);
if (*p != b)
{
fout << ((p - M) + 1) << "\n";
}
else
{
while (*(p + 1) == *p)
{
p += 1;
}
fout << ((p - M) + 1) << "\n";
}
}
break;
case 2 :
{
long *p = lower_bound(M + 0,M + N,b);
if (*p != b)
{
fout << (p - M) << "\n";
}
else
{
while (*(p - 1) == *p)
{
p -= 1;
}
fout << ((p - M) + 1) << "\n";
}
}
break;
};
}
fin.close();
fout.close();
return 0;
}