Pagini recente » fmi-no-stress-9/solutii | Cod sursa (job #479998) | Cod sursa (job #2483132) | Cod sursa (job #746051) | Cod sursa (job #902029)
Cod sursa(job #902029)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,i,v[100001],m,x,y,s,d,mij;
int caut0(int x)
{
s=1;
d=n;
mij=(s+d)/2;
while (s<=d)
{
if (v[mij]<=x)
s=mij+1;
else d=mij-1;
mij=(s+d)/2;
}
if (v[mij]>x) mij--;;
if (v[mij]==x) return mij;
else return -1;
}
int caut1(int x)
{
s=1;
d=n;
mij=(s+d)/2;
while (s<=d)
{
if (v[mij]<=x)
s=mij+1;
else d=mij-1;
mij=(s+d)/2;
}
if (v[mij]>x) mij--;
return mij;
}
int caut2(int x)
{
s=1;
d=n;
mij=(s+d)/2;
while (s<=d)
{
if (v[mij]>=x) d=mij-1;
else s=mij+1;
mij=(s+d)/2;
}
if (v[mij]<x) mij++;
return mij;
}
int main()
{
f>>n;
for (i=1;i<=n;i++)
{
f>>v[i];
}
f>>m;
for (i=1;i<=m;i++)
{
f>>y>>x;
if (y==0) g<<caut0(x)<<'\n';
if (y==1) g<<caut1(x)<<'\n';
if (y==2) g<<caut2(x)<<'\n';
}
f.close();
g.close();
return 0;
}