Pagini recente » Cod sursa (job #2061136) | Cod sursa (job #2915401) | Cod sursa (job #139407) | Cod sursa (job #957835) | Cod sursa (job #428493)
Cod sursa(job #428493)
#include <stdio.h>
#include <fstream.h>
#include <vector>
#include <algorithm>
#include <map>
#define INFILE "loto.in"
#define OUTFILE "loto.out"
using namespace std;
long int n, s;
vector <int> a;
map <int, int> viz;
void citire ();
void det ();
int main ()
{
citire ();
det ();
return 0;
}
void citire ()
{
long int x, i;
FILE * fin=fopen (INFILE, "r");
fscanf (fin, "%d%d", &n, &s);
for (i=0; i<n; i++)
{
fscanf (fin, "%d", &x);
a.push_back(x);
}
fclose (fin);
}
void det ()
{
ofstream fout(OUTFILE);
int i, j, k, ok=1, SUMA;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
for (k=0; k<n; k++)
{
viz[a[i]+a[j]+a[k]]=1;
}
for (i=0; i<n&&ok; i++)
for (j=0; j<n&&ok; j++)
for (k=0; k<n; k++)
{
if (viz[a[i]+a[j]+a[k]] && viz[s-(a[i]+a[j]+a[k])])
{
fout<<a[i]<<' '<<a[j]<<' '<<a[k]<<' ';
ok=0;
SUMA=s-(a[i]+a[j]+a[k]);
break;
}
}
if (i==n && j==n && k==n)
fout<<"-1"<<'\n';
else
{
ok=1;
for (i=0; i<n&&ok; i++)
for (j=0; j<n&&ok; j++)
for (k=0; k<n; k++)
{
if (a[i]+a[j]+a[k]==SUMA)
{
fout<<a[i]<<' '<<a[j]<<' '<<a[k]<<'\n';
ok=0;
break;
}
}
fout.close ();
}
}