Cod sursa(job #497404)

Utilizator NadoluBogdanNadolu Bogdan NadoluBogdan Data 2 noiembrie 2010 13:49:25
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
FILE *f=fopen("loto.in","r");
FILE *g=fopen("loto.out","w");
int n,s,i,p,u,m,j,a[101],b[1000001][4],k,ma;
int main(){
	fscanf(f,"%d %d",&n,&s);
	for (i=1;i<=n;i++)
		fscanf(f,"%d",&a[i]);
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++)
			for(k=j;k<=n;k++){
				ma++;
				b[ma][0]=a[i]+a[j]+a[k];
				b[ma][1]=i;
				b[ma][2]=j;
				b[ma][3]=k;
			}
			
	for(i=1;i<=ma;i++){
		p=1;
		u=ma;
		while(p<=u){
			m=(p+u)/2;
			if (s-b[i][0]==b[m][0]){
				fprintf(g,"%d %d %d %d %d %d",b[i][1],b[i][2],b[i][3],b[m][1],b[m][2],b[m][3]);
				return 0;
			}
			else
				if (s-b[i][0]<b[m][0])
					u=m-1;
				else
					p=m+1;
		}
	}
	fprintf(g,"-1");
	return 0;
}