Cod sursa(job #976239)

Utilizator rebound212Mihnea Savu rebound212 Data 22 iulie 2013 20:41:35
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<cstdio>
#include<algorithm>
#define MAX 1000005
using namespace std;

int s,n,a[112],m,st,dr,s2;

struct loto
{
    int s,unu,doi,trei;
};
loto X[MAX];
int main ()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    scanf("%d %d\n",&n,&s);
    int i,nrp=0;
    for (i=0;i<n;i++)
        scanf ("%d",&a[i]);
    int j,k;
    for (i=0; i<n;i++)
        for (j=i;j<n;j++)
            for (k=j;k<n;k++)
            {   nrp++;
                X[nrp].s=a[i]+a[j]+a[k];
                X[nrp].unu=a[i];
                X[nrp].doi=a[j];
                X[nrp].trei=a[k];

            }

    for (i=0; i<nrp; i++)
    {
        st=0;
        dr=nrp-1;
        s2=s-X[i].s;
        while (st<=dr)
        {
            m=(st+dr)/2;
            if (X[m].s==s2)
            {
                printf("%d %d %d %d %d %d\n",X[i].unu,X[i].doi,X[i].trei,X[m].unu,X[m].doi,X[m].trei);
                return 0;
            }
            else
                if (X[m].s<s2)
                    st=m+1;
                else
                    dr=m-1;
        }
    }
    printf ("-1\n");
    return 0;
}