Pagini recente » Cod sursa (job #1797074) | Cod sursa (job #672071) | Cod sursa (job #55543) | Cod sursa (job #2339564) | Cod sursa (job #443630)
Cod sursa(job #443630)
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
long sir[100001],n,deci,x,m;
void citire()
{ for(int i=1;i<=n;i++)
f>>sir[i];
}
void solve()
{ int st=1,dr=n,mijl,sol;
bool ok=0;
f>>deci>>x;
if(deci==0)
{ while(st<=dr)
{ mijl = st + (dr-st)/2;
if(sir[mijl]==x)
{ st=mijl+1;
sol=mijl;
}
else
dr=mijl-1;
}
g<<sol<<'\n';
}
else
if(deci==1)
{ while(st<=dr)
{ mijl = st + (dr-st)/2;
if(sir[mijl]<=x)
{ st=mijl+1;
sol=mijl;
}
else
dr=mijl-1;
}
g<<sol<<'\n';
}
else
{ while(st<=dr)
{ mijl = st + (dr-st)/2;
if(sir[mijl]>=x)
{ dr=mijl-1;
sol=mijl;
}
else
st=mijl+1;
}
g<<sol<<'\n';
}
}
int main()
{ f>>n;
citire();
f>>m;
for(int i=1;i<=m;i++)
solve();
f.close();
g.close();
return 0;
}