Pagini recente » Cod sursa (job #2398055) | Cod sursa (job #2955736) | Cod sursa (job #1577817) | Cod sursa (job #2067413) | Cod sursa (job #1121741)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE*f=fopen("loto.in","r");
FILE*h=fopen("loto.out","w");
int n,s,v[101],k;
struct val2{
int a,b,c;
};
int c[1000001];
val2 c1[1000001];
int main()
{
n=3;
s=13;
fscanf(f,"%d%d",&n,&s);
v[1]=1;
v[2]=2;
v[3]=3;
for ( int i=1;i<=n;++i )
fscanf(f,"%d",&v[i]);
for ( int i=1;i<=n;++i )
for ( int j=1;j<=n;++j )
for ( int r=1;r<=n;++r ){
c[++k]=v[i]+v[j]+v[r];
c1[k].a=v[i];
c1[k].b=v[j];
c1[k].c=v[r];
}
sort(c+1,c+k+1);
int p,pas;
for ( int i=1;i<=k;++i ){
p=0;
for ( pas=1<<19;pas;pas/=2 )
if ( p+pas<=k&&c[i]+c[p+pas]<=s )p+=pas;
if ( c[i]+c[p]==s ){
int s1=0,s2=0;
for ( int j=1;s1==0||s2==0;++j ){
if ( c1[j].a+c1[j].b+c1[j].c==c[i] )s1=j;
if ( c1[j].a+c1[j].b+c1[j].c==c[p] )s2=j;
}
fprintf(h,"%d %d %d %d %d %d",c1[s1].a,c1[s1].b,c1[s1].c,c1[s2].a,c1[s2].b,c1[s2].c);
return 0;
}
}
fprintf(h,"-1");
return 0;
}