Pagini recente » Istoria paginii utilizator/anton_b | Istoria paginii utilizator/shoez | Profil Simon2712 | Cod sursa (job #220145) | Cod sursa (job #2588894)
#include <bits/stdc++.h>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
struct info
{
int x, y, z, sum;
};
int v[128], n, s;
char found;
info sume[1000001];
int cnt;
bool cmp(info a, info b)
{
return a.sum < b.sum;
}
void citire()
{
in >> n >> s;
for(int i = 1; i <= n; i++)
in >> v[i];
}
void solve()
{
for(int i = 1; i<= n; i++)
for(int j = i; j <= n; j++)
for(int k = j; k <= n; k++)
{
cnt++;
sume[cnt] = {v[i], v[j], v[k], v[i]+v[j]+v[k]};
}
sort(sume+1, sume+cnt+1, cmp);
int a = 1, b = cnt;
while(a <= b)
{
if(sume[a].sum+sume[b].sum == s)
{
found = 1;
out << sume[a].x << " " << sume[a].y << " " << sume[a].z << " " << sume[b].x << " " << sume[b].y << " " << sume[b].z;
return;
}
else if(sume[a].sum + sume[b].sum < s)
a++;
else
b--;
}
}
int main()
{
citire();
solve();
if (!found)
out << -1;
}