Pagini recente » Cod sursa (job #2690306) | Cod sursa (job #3208492) | Cod sursa (job #1366935) | Cod sursa (job #1681984) | Cod sursa (job #1593026)
#include <fstream>
#define DMAX 100005
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
void citire();
int f0(int);
int f1(int);
int f2(int);
int n;
long long int v[DMAX];
int main()
{
int i, com, x, m;
citire();
fin>> m;
for (i=0; i<m; i++)
{
fin>> com>> x;
if (com==0) fout<< f0(x)+1<< '\n';
if (com==1) fout<< f1(x)+1<< '\n';
if (com==2) fout<< f2(x)+1<< '\n';
}
fin.close();
fout.close();
return 0;
}
void citire()
{
int i;
fin>> n;
for (i=0; i<n; i++) fin>> v[i];
}
int f0(int x)
{
int st=-1, dr=n, mij=0;
while (dr-st>1)
{
mij=(dr+st)/2;
if (v[mij]<=x)
st=mij;
else
dr=mij;
}
if (st!=-1 && v[st]==x) return st;
return -2;
}
int f1(int x)
{
int st=-1, dr=n, mij=0;
while (dr-st>1)
{
mij=(dr+st)/2;
if (v[mij]<=x)
st=mij;
else
dr=mij;
}
return st;
}
int f2(int x)
{
int st=-1, dr=n, mij=0;
while (dr-st>1)
{
mij=(dr+st)/2;
if (x<=v[mij])
dr=mij;
else
st=mij;
}
return dr;
}