Cod sursa(job #2647647)

Utilizator CristeaCristianCristea Cristian CristeaCristian Data 5 septembrie 2020 17:21:48
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int NMAX=100;
struct suma
{
    int a,b,c;
};
bool cmp(suma a,suma b)
{
    return(a.a+a.b+a.c)<(b.a+b.b+b.c);
}
suma d[NMAX*NMAX*NMAX+5];
int v[NMAX+5];
int main()
{
    int n,i,j,x,s,k;
    fin>>n>>s;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    k=1;
    for(i=1;i<=n;i++)
    {
        for(j=i;j<=n;j++)
        {
            for(x=j;x<=n;x++)
            {
                d[k].a=v[i];
                d[k].b=v[j];
                d[k].c=v[x];
                k++;
            }
        }
    }
    k--;
    sort(d+1,d+k+1,cmp);
    int st=1,dr=k,ok=0;
    {
        while(st<dr)
        {
            if(d[st].a+d[st].b+d[st].c+d[dr].a+d[dr].b+d[dr].c==s)
            {
                fout<<d[st].a<<' '<<d[st].b<<' '<<d[st].c<<' '<<d[dr].a<<' '<<d[dr].b<<' '<<d[dr].c;
                ok=1;
                break;
            }
           else if(d[st].a+d[st].b+d[st].c+d[dr].a+d[dr].b+d[dr].c<s)
                st++;
            else
                dr--;
        }
    }
    if(ok==0)
        fout<<-1;
    return 0;
}