Pagini recente » Cod sursa (job #105823) | Cod sursa (job #352883) | Cod sursa (job #2843348) | Cod sursa (job #609577) | Cod sursa (job #1703849)
#include <cstdio>
#include <algorithm>
#define INF 2000000000
#define MAXN 100
#define MOD 1299721
using namespace std;
struct suma{
int a, b, c, s;
} sume[MAXN*MAXN*MAXN], ans1, ans2;
int v[MAXN];
int cmp(suma A, suma B){
return A.s<B.s;
}
int main()
{
FILE *fin, *fout;
int n, i, j, k, m, sum, sol;
fin=fopen("loto.in", "r");
fscanf(fin, "%d%d", &n, &sum);
for(i=0; i<n; i++)
fscanf(fin, "%d", &v[i]);
fclose(fin);
m=0;
for(i=0; i<n; i++)
for(j=i; j<n; j++)
for(k=j; k<n; k++)
sume[m++]={v[i], v[j], v[k], v[i]+v[j]+v[k]};
sort(sume, sume+m, cmp);
for(i=sol=0, j=m-1; i<m && sol==0 && j>=0; i++){
while(j>=0 && sume[j].s>sum-sume[i].s)
--j;
if(j>=0 && sume[i].s+sume[j].s==sum){
sol=1;
ans1=sume[i]; ans2=sume[j];
}
}
fout=fopen("loto.out", "w");
if(sol)
fprintf(fout, "%d %d %d %d %d %d\n", ans1.a, ans1.b, ans1.c, ans2.a, ans2.b, ans2.c);
else
fprintf(fout, "-1\n");
fclose(fout);
return 0;
}