Pagini recente » Cod sursa (job #1704715) | Cod sursa (job #1506828) | Cod sursa (job #2130039) | Cod sursa (job #1055226) | Cod sursa (job #2036136)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int numara(int n, int v[])
{
int Max = 1;
int in = 1;
for(int i=2;i<=n;i++)
{
if(v[in] != v[i])
{
Max = max(Max, i-in);
in = i;
}
}
Max = max(Max, n-in + 1);
return Max;
}
int pozitie0(int n, int v[], int x)
{
int in=1;
int sf=n;
while(in<=sf)
{
int mij=(in+sf)/2;
if(v[mij]>x)
sf=mij-1;
else
in=mij+1;
}
if(v[sf]==x)
return sf;
else
return -1;
}
int pozitie1(int n, int v[], int x)
{
int in=1;
int sf=n;
while(in<=sf)
{
int mij=(in+sf)/2;
if(v[mij]>x)
sf=mij-1;
else
in=mij+1;
}
return sf;
}
int pozitie2(int n, int v[], int x)
{
int in=1;
int sf=n;
while(in<=sf)
{
int mij=(in+sf)/2;
if(v[mij]>=x)
sf=mij-1;
else
in=mij+1;
}
return in;
}
int a[100001];
int main()
{
int n,x,m,t;
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>a[i];
}
fin>>m;
for(int i=1;i<=m;i++)
{
fin>>t>>x;
if(t==0)
fout<<pozitie0(n,a,x)<<"\n";
if(t==1)
fout<<pozitie1(n,a,x)<<"\n";
if(t==2)
fout<<pozitie2(n,a,x)<<"\n";
}
return 0;
}