Pagini recente » Cod sursa (job #2610560) | Cod sursa (job #2151133) | Cod sursa (job #2562292) | Cod sursa (job #772925) | Cod sursa (job #2438970)
#include <bits/stdc++.h>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int n,s,a[110];
bool ok;
vector<pair<int,pair<int,pair<int,int>>>> v[12300];
const int mod=12289;
void add(int n,int i,int j,int k)
{
int r=n%mod;
v[r].push_back({n,{a[i],{a[j],a[k]}}});
}
void Find(int n,int i,int j,int k,bool &ok)
{
int r=n%mod;
int sz=v[r].size();
for(int it=0;it<sz;it++)
if(n==v[r][it].first)
{
ok=1;
out<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<v[r][it].second.first<<" "<<v[r][it].second.second.first<<" "<<v[r][it].second.second.second;
return;
}
}
int main()
{
in>>n>>s;
for(int i=1;i<=n;i++) in>>a[i];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
if(a[i]+a[j]+a[k]<s) {
ok=0;
add(a[i]+a[j]+a[k],i,j,k);
Find(s-a[i]-a[j]-a[k],i,j,k,ok);
if(ok) return 0;
}
out<<-1;
}