Pagini recente » Diferente pentru problema/cuplaj1 intre reviziile 7 si 6 | Monitorul de evaluare | Cod sursa (job #2044545) | Cod sursa (job #1575166) | Cod sursa (job #3345838)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct sum
{
int i1,i2,i3;
};
int n, S;
long long int v[105];
unordered_map<long long int, sum> m;
void precalculate3()
{
for(int i = 0; i < n; ++i){
for(int j = i; j < n; ++j){
for(int k = j; k < n; ++k){
sum Sum;
long long int x;
x = v[i] + v[j] + v[k];
Sum.i1 = i;
Sum.i2 = j;
Sum.i3 = k;
m[x] = Sum;
}
}
}
}
void generate3()
{
for(int i = 0; i < n; ++i){
for(int j = i; j < n; ++j){
for(int k = j; k < n; ++k){
long long int x;
x = v[i] + v[j] + v[k];
if(v[m[S - x].i1] + v[m[S - x].i2] + v[m[S - x].i2] == S - x){
fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ' << v[m[S - x].i1] << ' ' << v[m[S - x].i2] << ' ' << v[m[S - x].i3];
return;
}
}
}
}
fout << -1;
}
int main()
{
fin >> n >> S;
for(int i = 0; i < n; ++i){
fin >> v[i];
}
precalculate3();
generate3();
return 0;
}