Pagini recente » Cod sursa (job #2405693) | Cod sursa (job #2407147) | Cod sursa (job #2772264) | Cod sursa (job #3220965) | Cod sursa (job #672519)
Cod sursa(job #672519)
#include<stdio.h>
#include<vector>
#define FIN "loto.in","r",stdin
#define FOUT "loto.out","w",stdout
#define NMAX 101
using namespace std;
struct loto
{
int s,a,b,c;
};
loto x;
vector <loto>v[2011];
vector <loto>::iterator it;
vector <loto>::iterator it2;
int n,S,i,j,k,p,ok,ss;
int a[NMAX];
void read()
{
freopen(FIN);
scanf("%d %d",&n,&S);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
}
vector<loto>::iterator search(loto x)
{
for(it2=v[x.s%p].begin();it2!=v[x.s%p].end();++it2)
if((*it2).s == x.s%p)return it2;
return v[x.s%p].end();
}
void insert(loto x)
{
it2=search(x);
if(it2==v[x.s%p].end())
v[x.s%p].push_back(x);
}
void solve()
{
freopen(FOUT);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{
x.a=a[i];
x.b=a[j];
x.c=a[k];
x.s=x.a+x.b+x.c;
insert(x);
}
ok=0;
for(i=0;i<p&&!ok;i++)
for(it=v[i].begin();it!=v[i].end()&&!ok;++it)
{
ss=S-(*it).s;
it2=v[ss%p].begin();
if(it2!=v[ss%p].end())
{
ok=1;
printf("%d %d %d %d %d %d",(*it).a,(*it).b,(*it).c,(*it2).a,(*it2).b,(*it2).c);
}
}
if(!ok)printf("-1");
}
int main()
{
p=2011;
read();
solve();
return 0;
}