Pagini recente » Cod sursa (job #744749) | Cod sursa (job #397319) | Cod sursa (job #373604) | Cod sursa (job #2390933) | Cod sursa (job #971869)
Cod sursa(job #971869)
# include <cstdio>
# include <vector>
# define MOD 666013
# define pb push_back
# define SUMA (a[i]+a[j]+a[k])
# define MAXN 110
using namespace std;
int x,y,suma;
struct structura
{
int x,y,suma;
};
structura val;
vector <structura> s[MOD];
vector <structura> :: iterator it;
int N,S,i,ind,a[MAXN];
vector <structura> :: iterator find(int x)
{
for(it=s[ind].begin(); it!=s[ind].end(); ++it)
if((*it).suma==x) return it;
return it;
}
void solve()
{
int i,j,k,n;
for(i=1; i<=N; ++i)
for(j=1; j<=N; ++j)
for(k=1; k<=N; ++k)
if(SUMA*2==S)
{
printf("%d %d %d %d %d %d\n", a[i],a[i],a[j],a[j],a[k],a[k]);
return;
}
else
{
if(S-SUMA>=0){
ind=(S-SUMA)%MOD;
it=find(S-SUMA);
if(it!=s[ind].end())
{
printf("%d %d %d %d %d %d", a[i],a[j],a[k],(*it).x,(*it).y,(*it).suma-(*it).x-(*it).y);
return;
}
}
ind=(SUMA)%MOD;
val.x=a[i];
val.y=a[j];
val.suma=SUMA;
it=find(val.suma);
if(it==s[ind].end()) s[ind].pb(val);
}
printf("-1");
}
int main()
{
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%d %d\n", &N, &S);
for(i=1; i<=N; ++i) scanf("%d", &a[i]);
solve();
}