Pagini recente » Cod sursa (job #2025563) | Cod sursa (job #2561948) | Cod sursa (job #1169839) | Cod sursa (job #703933) | Cod sursa (job #502343)
Cod sursa(job #502343)
#include <fstream.h>
#include <algorithm>
long int a[100005],mij;
int caut(long int x, long st, long dr)
{
while (st<=dr)
{
mij=(st+dr)/2;
if (a[mij]==x)
return mij;
else
if (a[mij]>x)
dr=mij-1;
else
st=mij+1;
}
return -1;
}
int main()
{
long int n,i,j,k,tip,val;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
f>>k;
for (i=0;i<k;i++)
{
f>>tip>>val;
if (tip==0)
{
j=caut(val,1,n);
if (j!=-1)
while (a[j]==a[j+1])
j++;
g<<j<<"\n";
}
else
if (tip==1)
{
j=caut(val,1,n);
if (j!=-1)
{
while (a[j]==a[j+1])
j++;
}
else
while (a[mij]==a[mij-1])
mij--;
j=mij-1;
g<<j<<"\n";
}
else
{
j=caut(val,1,n);
if (j!=-1)
while (a[j]==a[j-1])
j--;
else
j=mij;
g<<j<<"\n";
}
}
f.close();
g.close();
}