Cod sursa(job #395141)

Utilizator Tucu94Andrei Tuculanu Tucu94 Data 12 februarie 2010 11:04:26
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
int n,m,a[1000],M,t,nrc,p,u,i;
int main()
{
	FILE*f=fopen("cautbin.in","r");
	FILE*g=fopen("cautbin.out","w");
	
	fscanf(f,"%d",&n);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&a[i]);

	
	fscanf(f,"%d",&M);
	
	for(i=1;i<=M;i++){
		 fscanf(f,"%d %d",&t,&nrc);
		p=a[1];u=a[n];
			while(p<=u){
				m=(p+u)/2;
				if(m==nrc)
					break;
				if(nrc<a[m])
					u=m-1;
				else
					p=m+1;
			}
		
			if(t==0)
				while(a[m+1]==a[m])
					m++;
				
					
					
			if(t==1)
				while(a[m+1]==a[m])
					m++;
				
					
			if(t==2)
				while(a[m-1]==a[m])
					m--;
				
			if (a[m]==nrc)
				fprintf(g,"%d \n",m);
			else
				fprintf(g,"-1\n");
	}	

fclose(f);
fclose(g);
return 0;
}