Pagini recente » Cod sursa (job #1931418) | Cod sursa (job #332170) | Cod sursa (job #395218) | Cod sursa (job #1799514) | Cod sursa (job #2260066)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100001];
int main() {
int n,c,x,m,d,s,mij,poz;
f>>n;
for (int i=1; i<=n; i++) {
f>>v[i];
}
f>>m;
for (int i=1; i<=m; i++) {
f>>c>>x;
s=1;
d=n;
poz=0;
while (s<d && poz==0)
{
mij=(d+s)/2;
if (v[mij]==x) poz=mij;
else
if(v[mij]<x)
{
s=mij+1;
}else
{
d=mij-1;
}
}
if (c==0) {
if (v[poz]==x)
{
while (v[poz+1]==x)
{
poz++;
}
}
if (poz==0) {
g<<-1<<'\n';
} else {
g<<poz<<'\n';
}
}
if (c==1) {
if (poz==0) poz=s;
if (v[poz]==x)
{
poz++;
while (v[poz]==x)
poz++;
}
g<<poz-1<<'\n';
}
if (c==2)
{
if (poz==0) poz=s;
if (v[poz]==x)
{
poz--;
while (v[poz-1]==x)
{
poz--;
}
}
g<<poz<<'\n';
}
}
return 0;
}