Cod sursa(job #2977388)

Utilizator gabriel.9619Gabriel Stefan Tita gabriel.9619 Data 11 februarie 2023 15:11:18
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.83 kb
#include <fstream>
#include <vector>
#include <algorithm>
#define mod 999997
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");

struct cmb{
    int x, nr1, nr2, nr3;
};
int v[101];

vector <cmb> l[mod];
vector <cmb>::iterator it;

int main()
{
    int n, s, i, k, j;
    fin>>n>>s;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            for(k=1;k<=n;k++)
            {
                int sum=v[i]+v[j]+v[k];
                int ok=0, index=sum%mod;
                for(it=l[index].begin();it!=l[index].end();it++)
                {
                    if(it->x==sum)
                    {
                        ok=1;
                        break;
                    }
                }
                if(ok==0)
                {
                    l[index].push_back({sum, i, j, k});
                }
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            for(k=1;k<=n;k++)
            {
                int sum=s-v[i]-v[j]-v[k];
                int ok=0, index=sum%mod;
                if(sum<0)
                {
                    continue;
                }
                else
                {
                    for(it=l[index].begin();it!=l[index].end();it++)
                    {
                        if(it->x==sum)
                        {
                            ok=1;
                            break;
                        }
                    }
                    if(ok==1)
                    {
                        fout<<it->nr1<<" "<<it->nr2<<" "<<it->nr3<<" "<<i<<" "<<j<<" "<<k<<" ";
                        return 0;
                    }
                }
            }
        }
    }
    fout<<-1;
}