Cod sursa(job #2918113)

Utilizator Botnaru_VictorBotnaru Victor Botnaru_Victor Data 9 august 2022 23:30:07
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <bits/stdc++.h>
#define nmax 101
using namespace std;

ifstream f("loto.in");
ofstream g("loto.out");

int v[nmax];
int n,s;
int c[nmax*nmax*nmax];
int sol[nmax*nmax*nmax];

bool cmp(const int &a, const int &b)
{
    return c[a]<c[b];
}
int main()
{
    f>>n>>s;
    for(int i=0;i<n;i++)
    {
        f>>v[i];
    }

    int n3=n*n*n;

    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            for(int k=0;k<n;k++)
            {
                c[i+j*n+k*n*n]=v[i]+v[j]+v[k];
            }
        }
    }
    for(int i=0;i<n3;i++)
    {
        sol[i]=i;
    }

    sort(sol,sol+n3);

    int a=0,b=n3-1;

    bool ok=0;
    for(;a<n3&&a<=b;a++)
    {
        while(c[sol[a]]+c[sol[b]]>s) b--;
        if(c[sol[a]]+c[sol[b]]==s)
        {
            ok=1;
            break;
        }
    }
    if(!ok)
    {
        g<<-1;
        return 0;
    }
    for(int i=0;i<3;i++)
    {
        g<<v[sol[a]%n]<<' '<<v[sol[b]%n]<<' ';
        sol[a]/=n;
        if(a!=b)sol[b]/=n;
    }


    return 0;
}