Cod sursa(job #133250)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 7 februarie 2008 22:51:55
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<stdio.h>  
#include<algorithm>  
using namespace std;  
struct loto  
{  
    long a,b,c,sum;  
};  
loto m[1000001];  
long x[101],s,i,j,a,b,c,k,n,dif;  

int cmp(loto a,loto b)   
{   
    return a.sum<b.sum;   
}  

int main()  
{  
    freopen ("loto.in","rt",stdin);  
    freopen ("loto.out","wt",stdout);  
  
    scanf("%ld %ld",&n,&s);  
    for (i=1;i<=n;i++)  scanf("%ld",&x[i]);  
	
    for (a=1;a<=n;a++)  
        for (b=a;b<=n;b++)  
            for (c=b;c<=n;c++)  
                m[++k].sum=x[a]+x[b]+x[c],m[k].a=x[a],m[k].b=x[b],m[k].c=x[c];  
  
    sort(m+1,m+k+1,cmp);  
    i=1;  
    j=k;  

    while (i<=j)  
    {  
        dif=s-m[i].sum;  
        while (m[j].sum>dif)  j--;  
		if (m[j].sum==dif && (i<=j))  
            {printf("%ld %ld %ld %ld %ld %ld\n",m[i].a,m[i].b,m[i].c,m[j].a,m[j].b,m[j].c);return 0;}  
        i++;  
    }  
    printf("-1\n");  
    return 0;  
}