Pagini recente » Cod sursa (job #2187878) | Monitorul de evaluare | Cod sursa (job #1703838) | Cod sursa (job #524605) | Cod sursa (job #1545121)
#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;
}