Pagini recente » Cod sursa (job #1170644) | Monitorul de evaluare | Cod sursa (job #3263889) | Cod sursa (job #679516) | Cod sursa (job #304618)
Cod sursa(job #304618)
#include<iostream>
#include<fstream>
using namespace std;
long b[6][105],a[105];
int main()
{
ifstream f ("loto.in");
ofstream o ("loto.out");
long n,i,j,k=0,S,p=1,kk=0,l=1,aux=0;
f>>n>>S;
if(S%2==0)
l=4;
if(S%2!=0)
l=5;
for(i=1;i<=n;i++)
{
f>>a[i];
if(S%a[i]==0 && S != a[i] && a[i]!=1)
aux=1;
}
for(i=1;i<=6 && p==1;i++)
for(j=1;j<=n && p==1;j++)
{
b[i][j]=a[j]*i;
if(i==6 && b[i][j]==S)
p=0,k=j,kk=6,l=6; //in acest caz afisam a [k] de l ori si a[kk] de 6-l adica 0 ori
}
for(i=1;i<=6 && p==1;i++)
for(j=1;j<=n && p==1;j++)
if(b[l][i]+b[6-l][j]==S && b[l][i] !=0 && b[6-l][j]!=0)
{
p=0;
kk=j;
k=i;
}
for(i=1;i<=6 && p==1 && aux==1;i++)
for(j=1;j<=n && p==1;j++)
if(b[3][i]+b[3][j]==S && b[3][i] !=0 && b[3][j]!=0)
{
p=0;
l=3;
kk=j;
k=i;
}
if(p)
for(i=n;i>=1 && p==1;i--)
for(j=n;j>=1 && p==1;j--)
for(int y=n;y>=1 && p==1;y--)
for(int e=n;e>=1 && p==1;e--)
for(int t=n;t>=1 && p==1;t--)
for(int u=n;u>=1 && p==1;u--)
if(a[i]+a[j]+a[y]+a[e]+a[t]+a[u]==S)
{ o<<a[i]<<" "<<a[j]<<" "<<a[y]<<" "<<a[e]<<" "<<a[t]<<" "<<a[u];p=2;}
if(!p)
{
for(i=1;i<=l;i++)
o<<a[k]<<" ";
for(i=1;i<=6-l;i++)
o<<a[kk]<<" ";
}
else
if(p==1)
o<<-1;
//cout<<l<<" "<<k<<" si "<<6-l<<" "<<kk<<endl;
//cout<<b[l][k]<<" "<<b[6-l][kk];
return 0;}