Pagini recente » Cod sursa (job #2138744) | Cod sursa (job #2038257) | Cod sursa (job #2422025) | Cod sursa (job #811919) | Cod sursa (job #976520)
Cod sursa(job #976520)
# include <cstdio>
# include <vector>
# define MOD 666013
using namespace std;
struct loto
{
int x,y,suma;
};
loto v;
vector <loto> H[MOD];
vector <loto> :: iterator it;
int n,s,i,ind,a[101],sum,j,k;
vector <loto> :: iterator find(int x)
{
for(it=H[ind].begin(); it!=H[ind].end(); it++)
if((*it).suma==x) return it;
return it;
}
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]);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
for(k=1; k<=n; k++)
{
sum=a[i]+a[j]+a[k];
if(sum*2==s)
{
printf("%d %d %d %d %d %d",a[i],a[j],a[k],a[i],a[j],a[k]);
}
else{
ind=(s-sum)%MOD;
it=find(s-sum);
if(it!=H[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 0 ;
}
v.x=a[i];
v.y=a[j];
v.suma=sum;
it=find(v.suma);
ind=sum%MOD;
if(it==H[ind].end()) H[ind].push_back(v);
} }
printf("-1");
return 0;
}