Cod sursa(job #1545121)

Utilizator SilviuIIon Silviu SilviuI Data 6 decembrie 2015 15:17:02
Problema Loto Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <stdio.h>
#include <vector>
#include <unordered_map>
#define nmax 110
using namespace std;
int n,m,i,j,k,t[nmax];
unordered_map <int,vector <int> > mp;
unordered_map <int,vector <int> >::iterator it;
int main() {
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=n;i++) scanf("%d",&t[i]);
for (i=1;i<=n;i++)
    for (j=i;j<=n;j++)
        for (k=j;k<=n;k++) {
            if (t[i]+t[j]+t[k]>m) break;
            if (mp.find(t[i]+t[j]+t[k])==mp.end()) {
                mp[t[i]+t[j]+t[k]].push_back(t[i]);
                mp[t[i]+t[j]+t[k]].push_back(t[j]);
                mp[t[i]+t[j]+t[k]].push_back(t[k]);
            }
        }
for (it=mp.begin();it!=mp.end();it++)
    if (mp.find(m-it->first)!=mp.end()) {
        for (i=0;i<mp[it->first].size();i++) printf("%d ",mp[it->first][i]);
        for (i=0;i<mp[m-it->first].size();i++) printf("%d ",mp[m-it->first][i]);
        return 0;
    }
puts("-1");
return 0;
}