Pagini recente » Cod sursa (job #796264) | Borderou de evaluare (job #1963584) | CNRV - pregatire la info - Editia #2 | Borderou de evaluare (job #1623369) | Cod sursa (job #428500)
Cod sursa(job #428500)
#include<fstream>
#include<vector>
#include<map>
#define dmax 103
using namespace std;
ofstream fout("loto.out");
map<long, long> viz;
long nr,n,a[dmax],suma;
vector<long> s;
void generare()
{
long i,j,k;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<n; k++)
{
viz[a[i]+a[j]+a[k]]=1;
s.push_back(a[i]+a[j]+a[k]);
}
}
void cautaresuma(long s)
{
long i,j,k;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<n; k++)
if (a[i]+a[j]+a[k]==s)
{
fout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
return ;
}
}
void solve()
{
long i,gasit=0;
for (i=0; i<=s.size(); i++)
if (viz[suma-s[i]]==1)
{
cautaresuma(s[i]);
cautaresuma(suma-s[i]);
gasit=1;
break;
}
if (gasit==0)
fout<<"-1";
}
int main()
{
long i;
ifstream fin("loto.in");
fin>>n>>suma;
for (i=1; i<=n; i++)
fin>>a[i];
generare();
sort(a+1,a+n+1);
solve();
return 0;
}