Pagini recente » Cod sursa (job #2399166) | Cod sursa (job #944386) | Cod sursa (job #2154040) | Cod sursa (job #1586526) | Cod sursa (job #1617834)
#include <stdio.h>
#include <algorithm>
#include <set>
#include <map>
#include <vector>
#define MAX 105
using namespace std;
int n, s, v[MAX];
set<int> l;
map<int, vector<int> > m;
int main(){
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%d%d", &n, &s);
for(int i = 0; i < n; i++)
scanf("%d", &v[i]);
for(int i = 0; i < n; i++)
for(int j = i; j < n; j++)
for(int k = j; k < n; k++){
int sum = v[i] + v[j] + v[k];
l.insert(sum);
vector<int> x;
x.push_back(v[i]);
x.push_back(v[j]);
x.push_back(v[k]);
m[sum] = x;
}
set<int>::iterator i = l.begin();
set<int>::iterator j = l.end();
while(i != j){
if(*i + *j == s){
vector<int> res;
res.push_back(m[*i][0]);
res.push_back(m[*i][1]);
res.push_back(m[*i][2]);
res.push_back(m[*j][0]);
res.push_back(m[*j][1]);
res.push_back(m[*j][2]);
sort(res.begin(), res.end());
for(int i = 0; i < 6; i++)
printf("%d ", res[i]);
printf("\n");
return 0;
}
if(*i + *j < s)
i++;
else
j--;
}
printf("-1\n");
return 0;
}