Pagini recente » Cod sursa (job #2917286) | Cod sursa (job #2178926) | Cod sursa (job #2430225) | Cod sursa (job #540672) | Cod sursa (job #143272)
Cod sursa(job #143272)
#include<stdio.h>
long e[101][7]={0},s,m[7][2]={0},mx=0;
int n,meg=0;
void beolvas()
{
FILE *f=fopen("loto.in","r");
fscanf(f,"%d%ld",&n,&s);
for(int i=1;i<=n;i++)
fscanf(f,"%ld",&e[i][0]);
fclose(f);
}
void kiir()
{
FILE *f=fopen("loto.out","w");
int i,j;
if(meg)
{
int h=0;
for(i=1;i<=mx;i++)
for(j=1;j<=m[i][1];j++)
{
h++;
if(h<6) fprintf(f,"%ld ",m[i][0]);
else fprintf(f,"%ld",m[i][0]);
}
}
else fprintf(f,"-1");
fclose(f);
}
void megold()
{
int i,j,k,x,y,z,l,o,a1,a2;
for(i=1;i<=n;i++)
for(j=1;j<=6;j++)
e[i][j]=j*e[i][0];
long sum;
//egy elem 6szor
for(i=1;i<=n;i++)
if(e[i][6]==s)
{
mx=1;
m[1][0]=e[i][0];
m[1][1]=6;
meg=1;
return;
}
if(n==1) return;
//ket elem 1,5 2,4 3,3 szor
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
{
if(e[i][1]+e[j][5]==s)
{
mx=2;
m[1][0]=e[i][1];
m[1][1]=1;
m[2][0]=e[j][1];
m[2][1]=5;
meg=1;
return;
}
if(e[i][5]+e[j][1]==s)
{
mx=2;
m[1][0]=e[i][1];
m[1][1]=5;
m[2][0]=e[j][1];
m[2][1]=1;
meg=1;
return;
}
if(e[i][2]+e[j][4]==s)
{
mx=2;
m[1][0]=e[i][1];
m[1][1]=2;
m[2][0]=e[j][1];
m[2][1]=4;
meg=1;
return;
}
if(e[i][4]+e[j][2]==s)
{
mx=2;
m[1][0]=e[i][1];
m[1][1]=4;
m[2][0]=e[j][1];
m[2][1]=2;
meg=1;
return;
}
if(e[i][3]+e[j][3]==s)
{
mx=2;
m[1][0]=e[i][1];
m[1][1]=3;
m[2][0]=e[j][1];
m[2][1]=3;
meg=1;
return;
}
}
if(n==2) return;
//harom elem 1,2,3 1,1,4 2,2,4 2,2,2
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
for(k=j+1;k<=n;k++)
{
for(x=1;x<=3;x++)
for(y=1;y<=3;y++)
for(z=1;z<=3&&x+y<6;z++)
if(x+y+z==6)
if(e[i][x]+e[j][y]+e[k][z]==s)
{
mx=3;
m[1][0]=e[i][1];
m[2][0]=e[j][1];
m[3][0]=e[k][1];
m[1][1]=x;
m[2][1]=y;
m[3][1]=z;
meg=1;
return;
}
}
if(n==3) return;
//negy elem 1,1,1,3 1,1,2,2
for(i=1;i<=n-3;i++)
for(j=i+1;j<=n-2;j++)
for(k=j+1;k<=n-1;k++)
for(l=k+1;l<=n;l++)
{
for(x=1;x<=4;x++)
for(y=1;y<=4;y++)
for(z=1;z<=4&&x+y<6;z++)
for(a1=1;a1<=4&&x+y+z<6;a1++)
if(x+y+z+a1==6)
if(e[i][x]+e[j][y]+e[k][z]+e[l][a1]==s)
{
mx=4;
m[1][0]=e[i][1];
m[2][0]=e[j][1];
m[3][0]=e[k][1];
m[4][0]=e[l][1];
m[1][1]=x;
m[2][1]=y;
m[3][1]=z;
m[4][1]=a1;
meg=1;
return;
}
}
if(n==4) return;
//ot elem
for(i=1;i<=n-4;i++)
for(j=i+1;j<=n-3;j++)
for(k=j+1;k<=n-2;k++)
for(l=k+1;l<=n-1;l++)
for(o=l+1;o<=n;o++)
{
for(x=1;x<=5;x++)
for(y=1;y<=5;y++)
for(z=1;z<=5&&x+y<6;z++)
for(a1=1;a1<=5&&x+y+z<6;a1++)
for(a2=1;a2<=5&&x+y+z+a1<6;a2++)
if(x+y+z+a1+a2==6)
if(e[i][x]+e[j][y]+e[k][z]+e[l][a1]+e[o][a2]==s)
{
mx=5;
m[1][0]=e[i][1];
m[2][0]=e[j][1];
m[3][0]=e[k][1];
m[4][0]=e[l][1];
m[5][0]=e[o][1];
m[1][1]=x;
m[2][1]=y;
m[3][1]=z;
m[4][1]=a1;
m[5][1]=a2;
meg=1;
return;
}
}
if(n==5) return;
//hat elem
int p;
for(i=1;i<=n-5;i++)
for(j=i+1;j<=n-4;j++)
for(k=j+1;k<=n-3;k++)
for(l=k+1;l<=n-2;l++)
for(o=l+1;o<=n-1;o++)
for(p=o+1;p<=n;p++)
{
if(e[i][1]+e[j][1]+e[k][1]+e[l][1]+e[o][1]+e[p][1]==s)
{
meg=1;
mx=6;
m[1][0]=e[i][1];
m[2][0]=e[j][1];
m[3][0]=e[k][1];
m[4][0]=e[l][1];
m[5][0]=e[o][1];
m[6][0]=e[p][1];
m[1][1]=1;
m[2][1]=1;
m[3][1]=1;
m[4][1]=1;
m[5][1]=1;
m[6][1]=1;
return;
}
}
}
int main()
{
beolvas();
megold();
kiir();
return 0;
}