Pagini recente » Diferente pentru sandbox intre reviziile 243 si 578 | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #3359466) | Cod sursa (job #3359301)
#include <fstream>
#include <map>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
#define int long long
int arr[105];
int32_t main()
{
int n,s;
cin>>n>>s;
for (int i=1; i<=n; i++) cin>>arr[i];
map<int,pair<int,pair<int,int> > >vf;
bool rf=0;
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
for (int h=1; h<=n; h++)
{
pair<int,pair<int,int> >pr;
pr.first=arr[i];
pr.second.first=arr[j];
pr.second.second=arr[h];
vf[arr[i]+arr[j]+arr[h]]=pr;
if (vf[s-arr[i]-arr[j]-arr[h]].first) {rf=1; cout<<arr[i]<<" "<<arr[j]<<" "<<arr[h]<<" "<<vf[s-arr[i]-arr[j]-arr[h]].first<<" "<<vf[s-arr[i]-arr[j]-arr[h]].second.first<<" "<<vf[s-arr[i]-arr[j]-arr[h]].second.second; break;}
}
if (rf) break;
}
if (rf) break;
}
if (rf==0) cout<<-1;
}