Pagini recente » Cod sursa (job #2839484) | Cod sursa (job #1708688) | Cod sursa (job #281037) | Arhiva de probleme | Cod sursa (job #834235)
Cod sursa(job #834235)
#include <iostream>
#include <fstream>
#define c 300000
#include <vector>
#include <cstdio>
using namespace std;
long long s,s1,s2;
int n,vec[110],p;
vector<int> v[c];
int cauta (int s)
{
int r=s%c;
if(s<0) return 0;
for(int i=1;i<v[r].size();++i)
{
if(v[r][i] == s) return 1;
}
return 0;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(int i=1;i<=n;++i)
{
scanf("%d",&vec[i]);
}
for(int i=1;i<=n;++i)
for(int j=i;j<=n;++j)
for(int k=j;k<=n;++k)
{
s2=vec[i]+vec[j]+vec[k];
v[s2%c].push_back(s2);
if(cauta(s-s2))
{
printf("%d %d %d ",vec[i],vec[j],vec[k]);
i=j=k=n;
p=1;
}
}
if(p==1)
{
for(int i=1;i<=n;++i)
for(int j=i;j<=n;++j)
for(int k=j;k<=n;++k)
{
s1=vec[i]+vec[j]+vec[k];
if(s1==s-s2)
{
printf("%d %d %d ",vec[i],vec[j],vec[k]);
i=j=k=n;
}
}
}
else
printf("-1\n");
return 0;
}