Pagini recente » Cod sursa (job #1689496) | Cod sursa (job #1017689) | Cod sursa (job #1599501) | Cod sursa (job #91219) | Cod sursa (job #2299924)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("loto.in");
ofstream cout ("loto.out");
int v[103];//sume[1000003];
//unordered_map<int,bool>mp;
vector<int>sal[666015];
const int mod=666013;
bool verif (int val)
{
int poz=val%mod;
if(val<0)
return false;
for(int i=0;i<sal[poz].size();++i)
if(sal[poz][i]==val)
return true;
return false;
}
void baga (int val)
{
int poz=val%mod;
if(val<0)
return;
if(!verif(val))
sal[poz].push_back(val);
}
int main()
{
int n,s,i,k=0,j,y,s1=-1,ok0=1,ok1=1;
cin>>n>>s;
for(i=1;i<=n;++i)
cin>>v[i];
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(y=j;y<=n;++y)
{
int sc=v[i]+v[j]+v[y];
baga(sc);
}
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(k=j;k<=n;++k)
if(verif(s-v[i]-v[j]-v[k]))
s1=v[i]+v[j]+v[k];
if(s1==-1){cout<<s1;return 0;}
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(y=j;y<=n;++y)
{
if(v[i]+v[j]+v[y]==s1 && ok1)
{
cout<<v[i]<<' '<<v[j]<<' '<<v[y]<<' ';
ok1=0;
}
if(v[i]+v[j]+v[y]==s-s1 && ok0)
{
cout<<v[i]<<' '<<v[j]<<' '<<v[y]<<' ';
ok0=0;
}
}
return 0;
}