Pagini recente » Diferente pentru utilizator/drastik intre reviziile 120 si 119 | Istoria paginii utilizator/catalina200029 | Monitorul de evaluare | Atasamentele paginii cls_11_simulare_oji | Cod sursa (job #2020156)
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n , s , i , nr;
scanf("%d%d",&n,&s);
vector<int>v;
for(i=0;i<n;i++)
{
scanf("%d",&nr);
v.push_back(nr);
}
sort(v.begin(),v.end());
vector<int>::iterator it ,it1,it2,it3,it4,it5,it6;
it=v.begin();
it1=v.end()-1;
if((*it)*6>s)
{
printf("-1");
return 0;
}
if((*it1)*6<s)
{
printf("-1");
return 0;
}
vector<int>t;
for(it=v.begin();it!=v.end();it++)
{
int s1=*it;
for(it1=v.begin();it1!=v.end();it1++)
{
int s2=s1;
s2+=*it1;
for(it2=v.begin();it2!=v.end();it2++)
{
int s3=s2;
s3+=*it2;
t.push_back(s3);
}
}
}
sort(t.begin(),t.end());
for(it=t.begin();it!=t.end();it++)
{
bool ok=binary_search(t.begin(),t.end(),s-(*it));
if(ok)
{
for(it3=v.begin();it3!=v.end();it3++)
{
int f=0;
int s1=*it3;
for(it1=v.begin();it1!=v.end();it1++)
{
int s2=s1;
s2+=*it1;
for(it2=v.begin();it2!=v.end();it2++)
{
int s3=s2;
s3+=*it2;
if(s3==(*it))
{
printf("%d %d %d ",*it3,*it2,*it1);
f=1;
}
if(f)break;
}
if(f)break;
}
if(f)break;
}
for(it3=v.begin();it3!=v.end();it3++)
{
int f=0;
int s1=*it3;
for(it1=v.begin();it1!=v.end();it1++)
{
int s2=s1;
s2+=*it1;
for(it2=v.begin();it2!=v.end();it2++)
{
int s3=s2;
s3+=*it2;
if(s3==s-(*it))
{
printf("%d %d %d ",*it3,*it2,*it1);
f=1;
}
if(f)break;
}
if(f)break;
}
if(f)break;
}
return 0;
}
}
printf("-1");
return 0;
}