Cod sursa(job #1181574)

Utilizator apopeid15Apopei Daniel apopeid15 Data 3 mai 2014 09:50:46
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <cstdio>
#include <unordered_map>
const int N=114;
using namespace std;
struct solve{
    int suma,prim,secund,tert;
};
unordered_map <int,solve> hashin;
solve incerc;
int v[N];
int main()
{
    int n,s;
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    scanf("%d%d",&n,&s);
    for(int i=1;i<=n;++i)scanf("%d",v+i);
    for(int i=1;i<=n;++i)
        for(int j=i;j<=n;++j)
            for(int k=j;k<=n;++k){
               incerc.suma=v[i]+v[j]+v[k];
               incerc.prim=v[i];
               incerc.secund=v[j];
               incerc.tert=v[k];
               hashin[incerc.suma]=incerc;
            }
    for(unordered_map <int,solve> :: iterator start=hashin.begin();start!=hashin.end();++start){
        unordered_map <int,solve> :: iterator gasit=hashin.find(s-(*start).second.suma);
        if(gasit!=hashin.end()){
            solve gasit1=(*start).second;
            solve gasit2=(*gasit).second;
            printf("%d %d %d %d %d %d\n",gasit1.prim,gasit1.secund,gasit1.tert,gasit2.prim,gasit2.secund,gasit2.tert);
            return 0;
        }
 
    }
    printf("-1");
    return 0;
}