Pagini recente » Cod sursa (job #444294) | Cod sursa (job #516044) | Cod sursa (job #1519356) | Cod sursa (job #1183831) | Cod sursa (job #1423770)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,v[100001],i,j,k,mij,ok=0;
int x,y;
void solve0()
{
i=1;
j=n;
while (i<=j)
{ mij=(i+j)/2;
if(v[mij]<=y)i=mij+1;
else j=mij-1;
}
mij=(i+j)/2;
if(v[mij]>y)mij--;
if(v[mij]==y)g<<mij<<"\n";
else g<<"-1";
}
void solve1()
{
i=1;
j=n;
while (i<j)
{ mij=(i+j)/2;
if(v[mij]<=y)i=mij+1;
else j=mij;
}
mij=(i+j)/2;
if(v[mij]>y)--mij;
g<<mij<<"\n";
}
void solve2()
{
i=1;
j=n;
while (i<j)
{ mij=(i+j)/2;
if(v[mij]<y)i=mij+1;
else j=mij;
}
mij=(i+j)/2;
if(v[mij]<y)++mij;
g<<mij;
}
int main()
{ f>>n;
for (i=1;i<=n;i++)f>>v[i];
f>>m;
for (k=1;k<=m;k++)
{
f>>x>>y;
if (x==0)solve0();
else if (x==1)solve1();
else solve2();
}
g.close();
return 0;
}