Cod sursa(job #603492)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 16 iulie 2011 18:53:04
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<cstdio>
int a[100001], x, n, q;

void cauta0 (int x)
{ int i=0;
  if(a[n]==x) printf("%d\n", n);
  else { while(a[++i]<=x);
	     --i;
		 if(a[i]==x) printf("%d\n", i);
		 else printf("0\n");
       }
}

void cauta1 (int x)
{ int i=0;
  if(a[n]==x) printf("%d\n", n);
  else { while(a[++i]<=x);
	     printf("%d\n", i-1);
       }
}

void cauta2 (int x)
{ int i=n+1;
  while(a[--i]>=x);
  printf("%d\n", i+1);
}
  


int main()
{ freopen("cautbin.in", "r", stdin);
  freopen("cautbin.out", "w", stdout);
  
  int k, i;
  scanf("%d", &n);
  for(i=1; i<=n; ++i) scanf("%d", &a[i]);
  scanf("%d", &q);
  while(q--) { scanf("%d %d", &k, &x);
               if(k==0) cauta0(x);
               else if(k==1) cauta1(x);
			        else cauta2(x);
             }
  return 0;
}