Pagini recente » Cod sursa (job #1258465) | Cod sursa (job #2086235) | Cod sursa (job #3140673) | Cod sursa (job #2615740) | Cod sursa (job #771236)
Cod sursa(job #771236)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define pb push_back
#define mod 666013
#define maxn 101
typedef struct { long val, E[4]; } my_type;
vector <my_type> T[mod+5];
my_type new_el;
long n,i,j,l,o;
long s,sum;
long P[mod+5];
ifstream in("loto.in");
ofstream out("loto.out");
int main()
{
in>>n>>sum;
for ( i=1; i<=n; i++ )
in>>P[i];
for ( i=1; i<=n; i++ )
for ( j=i; j<=n; j++ )
for ( l=j; l<=n; l++ )
{
new_el.val=P[i]+P[j]+P[l];
new_el.E[1]=i;
new_el.E[2]=j;
new_el.E[3]=l;
T[ new_el.val%mod ].pb ( new_el );
}
for ( i=1; i<=n; i++ )
for ( j=i; j<=n; j++ )
for ( l=j; l<=n; l++ )
{
s=P[i]+P[j]+P[l];
s=sum-s;
// cautam s in hash
for ( o=0; o<T[s%mod].size(); o++ )
if ( T[s%mod][o].val == s)
{
// gasit!
out<<P[i]<<" "<<P[j]<<" "<<P[l]<<" "<<P[ T[s%mod][o].E[1] ]<<" "<<P[ T[s%mod][o].E[2] ]<<" "<<P[ T[s%mod][o].E[3] ]<<"\n";
return 0;
}
}
out<<"-1";
return 0;
}