Pagini recente » Cod sursa (job #1985143) | Cod sursa (job #581205) | Cod sursa (job #2167179) | Cod sursa (job #394191) | Cod sursa (job #1984406)
#include <fstream>
#define ll long long
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int n;
ll mid, v[100000];
ll caut( ll st, ll dr, ll x){
if( st>dr ) return -1; else{
ll mid=( st + dr ) /2;
if ( v[mid]==x ) return mid;
if ( x>v[mid]) return caut(mid+1, dr, x);
else return caut(st, mid-1,x);
}
}
int main()
{
in>>n;
for(int i=1; i<=n; i++)
in>>v[i];
int nr; in>>nr;
ll x;
for(int i=1; i<=nr; i++){
int a; in>>a>>x;
int m=caut(1,n,x);
if(m==-1) out<<-1<<'\n';else {
if ( a==2 ) {
for(int j=m; j>=1; j--)
if ( v[j] != v[j-1] ) { out<<j<<'\n'; break;}
}
if (a==0 || a==1) { for(int j=m; j<=n-1; j++)
if ( v[j] != v[j+1]){ out<<j<<'\n'; break; }
}
}
}
return 0;
}