Pagini recente » Cod sursa (job #2142440) | Cod sursa (job #1805165) | Cod sursa (job #267951) | Cod sursa (job #1114524) | Cod sursa (job #1315536)
#include<fstream>
#include<vector>
#define mod 666013
#define pb push_back
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
vector<long long> kush[mod];
long long v[100];
vector<long long>::iterator find_value(long long x)
{
int list=x%mod;
vector<long long>::iterator it;
for(it=kush[list].begin(); it!=kush[list].end(); it+=4)
if(*it==x)return it;
return kush[list].end();
}
void insert_value(long long a, long long b, long long c)
{
long long x=a+b+c;
int list=x%mod;
if(find_value(x)==kush[list].end())
{
kush[list].pb(x);
kush[list].pb(a);
kush[list].pb(b);
kush[list].pb(c);
}
}
int main()
{
vector<long long>::iterator it;
int n, p, q, k;
long long x, s[6], temp;
f>>n>>x;
for(k=0; k<n; ++k)
{
f>>v[k];
}
for(p=0; p<n; ++p)
for(q=p; q<n; ++q)
for(k=q; k<n; ++k)
if(x>v[p]+v[q]+v[k]) insert_value(v[p],v[q],v[k]);
s[0]=-1;
for(p=0;p<n;++p)
for(q=p;q<n;++q)
for(k=q;k<n;++k)
{
if(x>=v[p]+v[q]+v[k])
{
temp=x-v[p]-v[q]-v[k];
it=find_value(temp);
if(it!=kush[temp%mod].end())
{
g<<v[p]<<" "<<v[q]<<" "<<v[k]<<" ";
g<<*(it+1)<<" "<<*(it+2)<<" "<<*(it+3);
return 0;
}
}
}
g<<"-1";
return 0;
}