Pagini recente » Cod sursa (job #1284802) | Cod sursa (job #811947) | Rating Vlad Cretu (vlad.cretu07) | Cod sursa (job #487158) | Cod sursa (job #1288185)
#include <cstdio>
#include <vector>
#define Mod 666013
#define NMAX 107
using namespace std;
vector < int > Hash[Mod];
int a[NMAX];
int n, m;
bool Find(int s){
for(int i = 0; i < Hash[s % Mod].size(); ++i)
if(Hash[s % Mod][i] == s)
return 1;
return 0;
}
int main(){
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; ++i)
scanf("%d", &a[i]);
for(int i = 1; i <= n; ++i)
for(int j = i; j <= n; ++j)
for(int k = j; k <= n; ++k){
int Sum = a[i] + a[j] + a[k];
if(Find(Sum) == 0)
Hash[Sum % Mod].push_back(Sum);
}
for(int i = 1; i <= n; ++i)
for(int j = i; j <= n; ++j)
for(int k = j; k <= n; ++k){
int Sum = a[i] + a[j] + a[k];
if(Find(m - Sum) == 1){
printf("%d %d %d ", a[i], a[j], a[k]);
for(int i = 1; i <= n; ++i)
for(int j = i; j <= n; ++j)
for(int k = j; k <= n; ++k)
if(a[i] + a[j] + a[k] == m - Sum){
printf("%d %d %d", i, j, k);
return 0;
}
}
}
printf("-1");
return 0;
}