Pagini recente » Cod sursa (job #2930185) | Cod sursa (job #1425054) | Cod sursa (job #142037) | Cod sursa (job #2935244) | Cod sursa (job #808747)
Cod sursa(job #808747)
#include <cstdio>
#include <vector>
#include <fstream>
#define pb push_back
#define f first
#define s second
#define mp make_pair
#define ll long long
const int mod = 666013;
const int maxn = 101;
using namespace std;
vector <pair <long long, pair <int, pair <int, int> > > > hash[mod + 1];
int n, S, A[maxn];
ifstream fin("loto.in");
//ofstream fout("loto.out");
int main() {
// freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
fin >> n >> S;
// scanf("%d %d\n", &n, &S);
for(int i = 1; i <= n; ++i)
fin >> A[i];
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
for(int k = 1; k <= n; ++k) {
ll s = A[i] + A[j] + A[k];
hash[s % mod].pb(mp(s,mp(i,mp(j,k))));
}
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
for(int k = 1; k <= n; ++k) {
ll s = A[i] + A[j] + A[k];
if(S < s) continue;
s = S - s;
int curr = s % mod;
for(int l = 0; l < hash[curr].size(); ++l)
if(hash[curr][l].f == s) {
//houston we have a winner
int a = A[hash[curr][l].s.f];
int b = A[hash[curr][l].s.s.f];
int c = A[hash[curr][l].s.s.s];
printf("%d %d %d %d %d %d\n", A[i], A[j], A[k], a, b, c);
return 0;
}
}
//Gigel pierde
printf("-1\n");
return 0;
}