Pagini recente » Cod sursa (job #2110798) | Cod sursa (job #1837790) | Cod sursa (job #1040179) | Cod sursa (job #505595) | Cod sursa (job #750960)
Cod sursa(job #750960)
#include <fstream>
#include <algorithm>
using namespace std;
long long v[1000],w[1000010];
int main()
{
ifstream f("loto.in");
ofstream g("loto.out");
long long n,i,j,OK=0,x,k,q,t,m,OK2=0;
long long S,S2;
f>>n; f>>S;
for(i=1;i<=n;i++)
f>>v[i];
k=0;
for(i=1;i<=n;i++)
{ for(j=i;j<=n;j++)
{ for(q=j;q<=n;q++)
{ w[++k]=v[i]+v[j]+v[q];}
}
}
sort(1+w,1+w+k);
for(q=1;q<=k;q++)
{ i=1; OK=0;
j=k; t=S-w[q];
while(i<=j&&OK==0)
{ m=(i+j)/2;
if(w[m]==t) {OK=1; break;}
if(w[m]>t) j=m-1;
else i=m+1;
}
}
OK2=0;
if(OK==1)
{ for(i=1;i<=n&&OK2==0;i++)
{ for(j=i;j<=n&&OK2==0;j++)
{ for(q=j;q<=n&&OK2==0;q++)
{ if(w[m]==v[i]+v[j]+v[q]) {g<<v[i]<<" "<<v[j]<<" "<<v[q]<<" "; OK2=0;}
}
}
}
OK2=0;
for(i=1;i<=n&&OK2==0;i++)
{ for(j=i;j<=n&&OK2==0;j++)
{ for(q=j;q<=n&&OK2==0;q++)
{ if(S-w[m]==v[i]+v[j]+v[q]) {g<<v[i]<<" "<<v[j]<<" "<<v[q]; OK2=0;}
}
}
}
}
else g<<-1;
f.close();
g.close();
return 0;
}