Pagini recente » Cod sursa (job #2919176) | Cod sursa (job #3208358) | Cod sursa (job #50134) | Cod sursa (job #228956) | Cod sursa (job #2093434)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("loto.in"); ofstream fout ("loto.out");
const int nmax = 100;
const int mod = 666013;
int v[nmax + 1];
bool ok;
struct str {
int sum;
int i, j, k;
};
vector< str > h[mod];
void baga (str x) {
h[x.sum % mod].push_back( x );
}
void cauta (int a, int b, int c, int r) {
for (auto i : h[r % mod]) {
if (i.sum == r) {
fout << a << " " << b << " " << c << " " << i.i << " " << i.j << " " << i.k << "\n";
ok = 0;
return ;
}
}
}
int main () {
int n, s;
fin >> n >> s;
for (int i = 1; i <= n; ++ i)
fin >> v[ i ];
for (int i = 1; i <= n; ++ i) {
for (int j = 1; j <= n; ++ j) {
for (int k = 1; k <= n; ++ k) {
str shp;
shp.sum = v[ i ] + v[ j ] + v[ k ];
shp.i = v[ i ], shp.j = v[ j ], shp.k = v[ k ];
baga( shp );
}
}
}
ok = 1;
for (int i = 1; i <= n && ok; ++ i) {
for (int j = 1; j <= n && ok; ++ j) {
for (int k = 1; k <= n && ok; ++ k) {
int sum = v[ i ] + v[ j ] + v[ k ];
if (sum <= s) {
cauta(v[ i ], v[ j ], v[ k ], s - sum);
}
}
}
}
if (ok) {
fout << "-1\n";
}
fin.close();
fout.close();
return 0;
}