Cod sursa(job #497047)

Utilizator KoniacDocea Andrei Koniac Data 1 noiembrie 2010 15:39:31
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

FILE * f = fopen("loto.in","r");
FILE * g = fopen("loto.out","w");

int i,j,t,u,p,d,n,s,ok,aux;

int a[101],v[101*101*101][4],c[101*101*101];

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(t=j;t<=n;t++){
				p++;
				v[p][1]=a[i];
				v[p][2]=a[j];
				v[p][3]=a[t];
				c[p]=a[i]+a[j]+a[t];
			}
		}
	}
	for(i=1;i<=p-1;i++){
		if(c[i]>c[i+1]){
			aux=c[i];
			c[i]=c[i+1];
			c[i+1]=aux;
			for(j=1;j<=3;j++){
				aux=v[i][j];
				v[i][j]=v[i+1][j];
				v[i+1][j]=aux;
			}
			i--;
		}
	}
	u=1;
	d=p;
	ok=0;
	while(u<d){
		if(c[u]+c[d]<s){
			u++;
		}
		else
			if(c[u]+c[d]>s){
				d--;
			}
			else
				if(c[u]+c[d]==s){
					ok=1;
					break;
				}
	}
	if(ok==0){
		fprintf(g,"-1");
	}
	else
	{
		fprintf(g,"%d %d %d %d %d %d",v[u][1],v[u][2],v[u][3],v[d][1],v[d][2],v[d][3]);
		
	}
	
	
	return 0;
}