Pagini recente » Cod sursa (job #915659) | Cod sursa (job #1404380) | Cod sursa (job #2243593) | Cod sursa (job #3038771) | Cod sursa (job #428474)
Cod sursa(job #428474)
#include <stdio.h>
#include <map>
#define Nmax 105
#define InFile "loto.in"
#define OutFile "loto.out"
using namespace std;
int n, S, T[Nmax];
map <int, char> viz;
void citire();
void determinare();
int main()
{
citire();
determinare();
return 0;
}
void citire()
{
int i;
FILE *fin=fopen (InFile, "r");
fscanf (fin, "%d %d\n", &n, &S);
for (i=1; i<=n; i++)
fscanf (fin, "%d ", &T[i]);
}
void determinare()
{
FILE *fout=fopen (OutFile, "w");
int i, j, k, S1, S2, S1o=0, S2o=0;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<=n; k++)
viz[T[i]+T[j]+T[k]]=1;
for (i=1; i<=S; i++)
if (viz[i] && viz[S-i])
{
S1=i;
S2=S-i;
break;
}
if (i==S+1)
fprintf (fout, "-1");
else
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<=n; k++)
{
if (T[i]+T[j]+T[k]==S1 && !S1o)
{
fprintf (fout, "%d %d %d ", T[i], T[j], T[k]);
S1o=1;
}
if (T[i]+T[j]+T[k]==S2 && !S2o)
{
fprintf (fout, "%d %d %d", T[i], T[j], T[k]);
S2o=1;
}
}
fprintf (fout, "\n");
fclose (fout);
}