Cod sursa(job #1277709)

Utilizator ade_tomiEnache Adelina ade_tomi Data 28 noiembrie 2014 00:36:05
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int i,j,s,n,x[101],l1,l2,m,k,ok,nr;
struct str
{
    int sum,a,b,c;
   
};
str v[100*100*100+3];
bool sortare(str elem1 , str elem2)
{
    return elem1.sum>elem2.sum;
}
int main()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    scanf("%d%d",&n,&s);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x[i]);

    }
    for(i=1;i<=n;i++)
        for(j=i;j<=n;j++)
            for(k=j;k<=n;k++)
            {
                nr++;
                v[nr].sum=x[i]+x[j]+x[k];
                v[nr].a=x[i];
                v[nr].b=x[j];
                v[nr].c=x[k];

            }
    sort(v+1,v+1+nr,sortare);
    for(i=1;i<=nr;i++)
    {
        l1=1;
        l2=nr;
        int caut=s-v[i].sum;
        ok=0;
        while(l1<=l2&&ok==0)
        {
            m=(l1+l2)/2;
            if(v[m].sum==caut)
                ok=m;
             else
                 if(v[m].sum>caut)
                     l2=m-1;
                  else
                      l1=m+1;

            
        }
        if(ok!=0)
        {
            printf("%d %d %d %d %d %d",v[i].a,v[i].b,v[i].c,v[m].a,v[m].b,v[m].c);
            return 0;
        }
    }
    printf("-1");
    return 0;

}