Cod sursa(job #974784)

Utilizator j.loves_rockJessica Joanne Patrascu j.loves_rock Data 18 iulie 2013 12:50:50
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct BILET
    {
        int b1,b2,b3,s;
        void print()
            {
                printf("%d %d %d ",b1,b2,b3);
            }
    };
BILET s[1000010];
int b[110];
class cmp
    {
        public:
            bool inline operator () ( const BILET &a, const BILET &b)
                {
                    return a.s<b.s;
                }
    };

int main()
{
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    int n,i,j,S,k,st,dr,num=0;
    scanf("%d%d",&n,&S);
    for(i=1;i<=n;i++)
        scanf("%d",&b[i]);
    for(i=1;i<=n;i++)
        for(j=i;j<=n;j++)
            for(k=j;k<=n;k++)
                s[++num]={b[i],b[j],b[k],b[i]+b[j]+b[k]};
    sort(s+1,s+1+num,cmp());
    st=1; dr=num;
    while(st<=dr)
        {
            while(st<=dr && s[st].s+s[dr].s>=S)
                {
                    if(s[st].s+s[dr].s==S)
                        {
                            s[st].print();
                            s[dr].print();
                            return 0;
                        }
                    dr--;
                }
            st++;
        }
    printf("-1\n");
    return 0;
}