Pagini recente » Cod sursa (job #1251558) | Cod sursa (job #2424577) | Cod sursa (job #1412647) | Cod sursa (job #944510) | Cod sursa (job #672522)
Cod sursa(job #672522)
#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&&!ok;i++)
for(j=1;j<=n&&!ok;j++)
for(k=1;k<=n&&!ok;k++)
{
x.a=a[i];
x.b=a[j];
x.c=a[k];
x.s=x.a+x.b+x.c;
if(x.s<=S)
{
insert(x);
ss=S-x.s;
for(it=v[ss%p].begin();it!=v[ss%p].end();++it)
if((*it).s==ss)
{
printf("%d %d %d %d %d %d",x.a,x.b,x.c,(*it).a,(*it).b,(*it).c);
ok=1;
}
}
}
if(!ok)printf("-1");
}
int main()
{
p=2011;
read();
solve();
return 0;
}