Pagini recente » Cod sursa (job #849863) | Cod sursa (job #2406484) | Cod sursa (job #2877449) | Cod sursa (job #1625370) | Cod sursa (job #2754986)
#include <fstream>
#include <algorithm>
using namespace std;
int v[105], sume[1000005];
int main()
{
ifstream cin("loto.in");
ofstream cout("loto.out")
// de pe infoarena
int n, s, nr, p=0, ok=-1, okay=0;
cin>>n>>s;
for(int i=0; i<n; i++)
cin>>v[i];
for(int a=0; a<n; a++)
for(int b=a; b<n; b++)
for(int c=b; c<n; c++)
{
sume[p]=v[a]+v[b]+v[c];
p++;
}
sort(sume, sume+p);
int sum1, sum2;
for(int i=0; i<p; i++)
{
int l=0, r=p-1;
nr=s-sume[i];
while(l<=r)
{
int m = (l+r)/2;
if(sume[m]>nr)
r=m-1;
if(sume[m]<nr)
l=m+1;
else
{
ok=1;
sum1=sume[i];
sum2=nr;
break;
}
}
}
if(ok==1)
{
for(int a=0; a<n && okay!=1; a++)
for(int b=a; b<n && okay!=1; b++)
for(int c=b; c<n && okay!=1; c++)
{
if(v[a]+v[b]+v[c]==sum1)
{
cout<<v[a]<<" "<<v[b]<<" "<<v[c]<<" ";
okay=1;
}
}
okay=0;
for(int a=0; a<n && okay!=1; a++)
for(int b=a; b<n && okay!=1; b++)
for(int c=b; c<n && okay!=1; c++)
{
if(v[a]+v[b]+v[c]==sum2)
{
cout<<v[a]<<" "<<v[b]<<" "<<v[c]<<" ";
okay=1;
}
}
}
else
{
cout<<ok;
}
return 0;
}