Pagini recente » Cod sursa (job #1708642) | Cod sursa (job #338570) | Cod sursa (job #2303953) | Cod sursa (job #1546649) | Cod sursa (job #823730)
Cod sursa(job #823730)
#include<cstdio>
#include<vector>
#include<ext/hash_set>
using namespace std;
#define Nmax 101
__gnu_cxx::hash_set<int> H;
int N, S, V[Nmax];
vector<int> sol;
int main() {
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int i, j, k, sum;
scanf("%d %d",&N,&S);
for(i=1; i<=N; i++)
scanf("%d",&V[i]);
for(i=1; i<=N; i++)
for(j=1; j<=N; j++)
for(k=1; k<=N; k++) {
sum = V[i] + V[j] + V[k];
if(sum < S)
H.insert(sum);
}
sum = -1;
for(i=1; i<=N; i++)
for(j=1; j<=N; j++)
for(k=1; k<=N; k++) {
sum = V[i] + V[j] + V[k];
if(H.find(S-sum) != H.end()) {
sol.push_back(V[i]);
sol.push_back(V[j]);
sol.push_back(V[k]);
//printf("%d %d %d",V[i],V[j],V[k]);
S-=sum;
i = j = k = N+1;
}
}
for(i=1; i<=N; i++)
for(j=1; j<=N; j++)
for(k=1; k<=N; k++) {
sum = V[i] + V[j] + V[k];
if(S == sum) {
printf("%d %d %d ",V[i],V[j],V[k]);
for(vector<int>:: iterator it=sol.begin(); it!=sol.end(); ++it)
printf("%d ",*it);
return 0;
}
}
printf("-1\n");
return 0;
}