Pagini recente » Cod sursa (job #2591518) | Cod sursa (job #80552) | Cod sursa (job #2755434) | Cod sursa (job #2315141) | Cod sursa (job #1936717)
#include <bits/stdc++.h>
using namespace std;
int n,a[100005],b[100005],c[100005],m;
int Cautare(int prim,int ultim,int y)
{
if (prim>ultim) return -1;
int mijloc=(prim+ultim)/2;
if (y==a[mijloc]) return mijloc-1;
if (y<a[mijloc]) return Cautare(prim,mijloc-1,y);
return Cautare(mijloc+1,ultim,y);
}
int Cautare1(int prim,int ultim,int y)
{
if (prim>ultim) return ultim;
int mijloc=(prim+ultim)/2;
if (y==a[mijloc]) return mijloc-1;
if (y<a[mijloc]) return Cautare(prim,mijloc-1,y);
return Cautare(mijloc+1,ultim,y);
}
int Cautare2(int prim,int ultim,int y)
{
if (prim>ultim) return prim;
int mijloc=(prim+ultim)/2;
if (y==a[mijloc]) return mijloc-1;
if (y<a[mijloc]) return Cautare(prim,mijloc-1,y);
return Cautare(mijloc+1,ultim,y);
}
int main() {
cin>>n;
for (int i=1;i<=n;i++)
cin>>a[i];
cin>>m;
for (int i=1;i<=m;i++)
cin>>b[i]>>c[i];
int q=Cautare(1,n,c[1]);
while (a[q+1]==a[q])
q++;
int e=Cautare1(1,n,c[2]);
if (Cautare(1,n,c[2])!=-1) e=q;
cout<<q<<' '<<e<<' '<<Cautare2(1,n,c[3]);
return 0;
}