Pagini recente » Cod sursa (job #387243) | Cod sursa (job #466512) | Cod sursa (job #273110) | Cod sursa (job #2431405) | Cod sursa (job #428512)
Cod sursa(job #428512)
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
FILE * fin=fopen ("loto.in","r");
FILE * fout=fopen ("loto.out","w");
map <int, int> viz;
vector<int> v;
int n,S,i,j,k,nr,S1,S2,ok,x;
int main()
{
fscanf (fin,"%d %d",&n,&S);
for (i=0; i<n; i++)
{
fscanf (fin, "%d", &x);
v.push_back(x);
}
ok=1;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
for (k=0; k<n; k++)
viz[v[i]+v[j]+v[k]] = 1;
for (i=0; i<n&&ok==1; i++)
for (j=0; j<n&&ok==1; j++)
for (k=0; k<n&&ok==1; k++)
if (viz[S-v[i]-v[j]-v[k]] == 1)
{
S1=v[i]+v[j]+v[k];
fprintf (fout, "%d %d %d ", v[i],v[j],v[k]);
S2=S-v[i]-v[j]-v[k];
ok=0;
break;
}
if (ok==0)
{
ok=1;
for (i=0; i<n&&ok==1; i++)
for (j=0; j<n&&ok==1; j++)
for (k=0; k<n&&ok==1; k++)
if (v[i]+v[j]+v[k] == S2)
{
fprintf (fout, "%d %d %d\n", v[i],v[j],v[k]);
ok=0;
break;
}
}
else
fprintf (fout, "-1\n");
fclose(fin);
fclose(fout);
return 0;
}