Pagini recente » Cod sursa (job #205291) | Cod sursa (job #1023717) | Cod sursa (job #1832551) | Cod sursa (job #2187009) | Cod sursa (job #751151)
Cod sursa(job #751151)
#include <fstream>
#include <algorithm>
using namespace std;
typedef struct pere {int s,x,y,z;};
pere d[1000001];
int n,x,v[101];
inline int cmp(pere x, pere y)
{
return x.s<y.s;
}
int main()
{
int i,j,q,x,k,t,OK=0;
long long S;
ifstream f("loto.in");
ofstream g("loto.out");
f>>n; f>>S; k=0;
for (i=1;i<=n;++i)
f>>v[i];
if(n<=10)
{ for(i=1;i<=n&&OK==0;i++)
{ for(j=1;j<=n&&OK==0;j++)
{ for(q=1;q<=n&&OK==0;q++)
{ for(x=1;x<=n&&OK==0;x++)
{ for(k=1;k<=n&&OK==0;k++)
{ for(t=1;t<=n&&OK==0;t++)
{ if(v[i]+v[j]+v[q]+v[x]+v[k]+v[t]==S) {g<<v[i]<<" "<<v[j]<<" "<<v[q]<<" "<<v[x]<<" "<<v[k]<<" "<<v[t]; OK=1;}
}
}
}
}
}
}
if(OK==0) g<<-1;
}
else
{
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (q=j;q<=n;q++)
{
d[++k].s=v[i]+v[j]+v[q];
d[k].x=v[i];
d[k].y=v[j];
d[k].z=v[q];
}
sort(d,d+k,cmp);
i=0; j=k-1;
while((i<j)&&(d[i].s+d[j].s!=S))
if (d[i].s+d[j].s>S) j--;
else i++;
if (d[i].s+d[j].s!=S) g<<-1;
else g<<d[i].y<<" "<<d[i].x<<" "<<d[i].z<<" "<<d[j].y<<" "<<d[j].x<<" "<<d[j].z;
}
return 0;
}