Cod sursa(job #3216536)

Utilizator vladsoartavlad sofronea vladsoarta Data 17 martie 2024 18:21:47
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");

int s,n,i,v[101];
struct vladut
{
    int a,b,c;
};

vector<vladut>meet;

bool cmp(vladut a,vladut b)
{
    return a.a+a.b+a.c<b.a+b.b+b.c;
}

int main()
{
    cin>>n>>s;
    for(i=1; i<=n; i++)
        cin>>v[i];
    meet.push_back({0,0,0});
    for(i=1; i<=n; i++)
        for(int j=i; j<=n; j++)
            for(int h=j; h<=n; h++)
                meet.push_back({v[i],v[j],v[h]});
    sort(meet.begin(),meet.end(),cmp);
    /*for(i=1; i<meet.size(); i++)
        cout<<meet[i].a<<" "<<meet[i].b<<" "<<meet[i].c<<'\n';*/
    int st=1,dr=meet.size()-1;
    while(dr>=st)
    {
        int sum=s-(meet[st].a+meet[st].b+meet[st].c+meet[dr].a+meet[dr].b+meet[dr].c);
        if(sum<0&&dr>=1)
            dr--;
        else if(sum>0&&st<=meet.size()-1)
            st++;
        else
        {
            int rsp[7]= {meet[st].a,meet[st].b,meet[st].c,meet[dr].a,meet[dr].b,meet[dr].c};
            sort(rsp,rsp+5);
            for(i=0; i<=5; i++)
                cout<<rsp[i]<<" ";
            return 0;
        }
    }
    cout<<-1;
    return 0;
}