Pagini recente » Cod sursa (job #2374541) | Cod sursa (job #612692) | Cod sursa (job #2770449) | Cod sursa (job #765266) | Cod sursa (job #2397383)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,s,v[105],nr;
struct loto
{
int s;
int x1,x2,x3;
}sum[100000005];
inline bool comp(loto a,loto b)
{
return a.s<b.s;
}
void afis(int i)
{
g<<sum[i].x1<<" "<<sum[i].x2<<" "<<sum[i].x3<<" ";
}
int main()
{
f>>n>>s;
for(int i=1;i<=n;i++)
f>>v[i];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
{
sum[++nr].s=v[i]+v[j]+v[k];
sum[nr].x1=v[i];
sum[nr].x2=v[j];
sum[nr].x3=v[k];
}
sort(sum+1,sum+nr+1,comp);
for(int i=1;i<=nr;i++)
{
int s1=s-sum[i].s;
int st=1,dr=nr;
while(st<=dr)
{
int mij=(st+dr)/2;
if(sum[mij].s==s1)
{
afis(i);
afis(mij);
return 0;
}
if(sum[mij].s<s1)
st=mij+1;
else dr=mij-1;
}
}
g<<-1<<'\n';
return 0;
}