Cod sursa(job #1966511)

Utilizator FckingSlayerSlayer99 FckingSlayer Data 15 aprilie 2017 12:33:24
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <fstream>
#include <string.h>
#include <vector>
#include <algorithm>
#include <unordered_map>

#define nMax 101
#define mkp make_pair
#define bit(i) i&(-i)
#define x first
#define y second


using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

int n, S;
int v[nMax];
unordered_map<int, pair<pair<int, int>, int> > myHash;

int main()
{
    fin>>n>>S;
    for(int i=1; i<=n; i++)
        fin>>v[i];
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
        {
            for(int k=1; k<=n; k++)
            {
                int Sum=v[i]+v[j]+v[k];
                if(myHash.find(Sum)==myHash.end())
                    myHash[Sum]=mkp(mkp(i, j), k);
            }
        }
    }
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
        {
            for(int k=1; k<=n; k++)
            {
                int Sum=S-v[i]-v[j]-v[k];
                if(myHash.find(Sum)!=myHash.end())
                {
                    int a=myHash[Sum].x.x, b=myHash[Sum].x.y, c=myHash[Sum].y;
                    fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<v[a]<<" "<<v[b]<<" "<<v[c];
                    return 0;
                }
            }
        }
    }
    fout<<-1;
}