Pagini recente » Cod sursa (job #2272391) | Cod sursa (job #362928) | Cod sursa (job #2038728) | Cod sursa (job #893843) | Cod sursa (job #549632)
Cod sursa(job #549632)
#include <iostream>
#include<stdio.h>
#define LG 100000
using namespace std;
int n,m,v[LG];
void citire()
{
int i=1;
cin>>n;
while(i<=n) cin>>v[i++];
cin>>m;
}
int binar( int x )
{
int m,li=1,ls=n;
while( li<=ls )
{
m = (li+ls)/2;
if( x==v[m] ) return m;
else
if( x<v[m] ) ls = m-1;
else li = m+1;
}
return -1;
}
int main()
{
int i,j,smile,pas;
freopen("cautabin.in","r",stdin);
freopen("cautabin.out","w",stdout);
citire();
while(m--)
{
cin>>i>>j;
smile = binar(j);
if( i==0 )
if( smile>0 )
{
pas = smile + 1;
while(v[pas]==j) pas++;
printf("%d\n",pas-1);
}
else printf("-1\n");
if( i==1 )
{
if( v[smile+1] == j )
{
pas = smile + 1;
while(v[pas]==j) pas++;
printf("%d\n",pas-1);
}
else printf("%d",smile-1);
}
if( i==2 )
{
if( j==v[smile-1] )
{
pas = smile - 1;
while(v[pas]==j) pas--;
printf("%d\n",pas+1);
}
else printf("%d\n",smile-1);
}
}
return 0;
}