Pagini recente » Cod sursa (job #3236885) | Cod sursa (job #1299417) | Cod sursa (job #178619) | Cod sursa (job #1536778) | Cod sursa (job #1481439)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
const int NMAX=105;
int a[NMAX];
int v[NMAX*NMAX*NMAX];
int main()
{
int n,s,na=0;
f>>n>>s;
for(int i=1;i<=n;i++)
f>>a[i];
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
for(int k=j;k<=n;k++)
v[++na]=a[i]+a[j]+a[k];
sort(v+1,v+na+1);
int j=na,sum1,sum2;
bool ok=0;
for(int i=1;i<=na && v[i]<s;i++)
{
int x=s-v[i];
while(v[j]>x)
j--;
if(v[j]==x)
{
sum1=x;
sum2=v[i];
ok=1;
break;
}
}
if(ok)
{
bool gasit=0;
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
for(int k=j;k<=n && gasit==0;k++)
if(sum1==a[i]+a[j]+a[k])
{
g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
gasit=1;
}
gasit=0;
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
for(int k=j;k<=n && gasit==0;k++)
if(sum2==a[i]+a[j]+a[k])
{
g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
gasit=1;
}
}
else
g<<"-1\n";
return 0;
}