Cod sursa(job #1487716)

Utilizator aaron72Armand Ioan Anusca Popa aaron72 Data 17 septembrie 2015 12:42:17
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <algorithm>
#include <unordered_map>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
const int NMAX=105;
int a[NMAX];
int v[NMAX*NMAX*NMAX];
unordered_map <int,bool> M;
int main()
{
    int n,s,sum2,sum,ok=0;
    f>>n>>s;
    for(int i=1;i<=n;i++)
        f>>a[i];
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)
            for(int k=j;k<=n && ok==0;k++)
            {
                sum=a[i]+a[j]+a[k];
                M[sum]=1;
                if(sum<s)
                {
                    int ramas=s-sum;
                    if(M[ramas]>0)
                    {
                        g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
                        sum2=ramas;
                        ok=1;
                    }
                }
 
            }
    if(ok)
    {
        bool gasit=0;
        for(int i=1;i<=n;i++)
            for(int j=i;j<=n;j++)
                for(int k=j;k<=n && gasit==0;k++)
                    if(sum2==a[i]+a[j]+a[k])
                    {
                        g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
                        gasit=1;
                    }
    }
    else
        g<<"-1\n";
    return 0;
}