Pagini recente » Cod sursa (job #2470813) | Cod sursa (job #2486600) | Cod sursa (job #433469) | Cod sursa (job #542741) | Cod sursa (job #2106708)
#include <iostream>
#include <fstream>
#include <map>
using namespace std;
int a[101];
int n, s;
void feltolt(map<int, int> &elozo, map<int, int> &kov)
{
for(map<int, int>::iterator it=elozo.begin(); it!=elozo.end(); it++)
{
for(int i=1; i<=n; i++)
{
if(it->first+a[i]<=s) kov[it->first+a[i]]=i;
}
}
//elozo.clear();
};
int main()
{
ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>s;
for(int i=1; i<=n; i++) f>>a[i];
map<int, int> osszeg;
map<int, int> osszeg2;
map<int, int> osszeg3;
map<int, int> osszeg4;
map<int, int> osszeg5;
map<int, int> osszeg6;
int k=0;
for(int i=1; i<=n; i++) osszeg[a[i]]=i;
/*for(map<int, int>::iterator it=osszeg.begin(); it!=osszeg.end(); it++) cout<<it->first<<" ";
cout<<endl;*/
feltolt(osszeg, osszeg2);
/*for(map<int, int>::iterator it=osszeg2.begin(); it!=osszeg2.end(); it++) cout<<it->first<<" ";
cout<<endl;*/
feltolt(osszeg2, osszeg3);
/*for(map<int, int>::iterator it=osszeg3.begin(); it!=osszeg3.end(); it++) cout<<it->first<<" ";
cout<<endl;*/
feltolt(osszeg3, osszeg4);
/*for(map<int, int>::iterator it=osszeg4.begin(); it!=osszeg4.end(); it++) cout<<it->first<<" ";
cout<<endl;*/
feltolt(osszeg4, osszeg5);
/*for(map<int, int>::iterator it=osszeg5.begin(); it!=osszeg5.end(); it++) cout<<it->first<<" ";
cout<<endl;*/
feltolt(osszeg5, osszeg6);
/*for(map<int, int>::iterator it=osszeg6.begin(); it!=osszeg6.end(); it++) cout<<it->first<<" ";
cout<<endl;*/
if(osszeg6.find(s)!=osszeg6.end())
{
g<<a[osszeg6.find(s)->second]<<" ";
s-=a[osszeg6.find(s)->second];
//cout<<s<<endl;
g<<a[osszeg5.find(s)->second]<<" ";
s-=a[osszeg5.find(s)->second];
//cout<<s<<endl;
g<<a[osszeg4.find(s)->second]<<" ";
s-=a[osszeg4.find(s)->second];
//cout<<s<<endl;
g<<a[osszeg3.find(s)->second]<<" ";
s-=a[osszeg3.find(s)->second];
//cout<<s<<endl;
g<<a[osszeg2.find(s)->second]<<" ";
s-=a[osszeg2.find(s)->second];
//cout<<s<<endl;
g<<a[osszeg.find(s)->second]<<" ";
s-=a[osszeg.find(s)->second];
//cout<<s<<endl;
//s-=osszeg.find(s)->second;*/
}
else g<<"-1"<<endl;
return 0;
}