Pagini recente » Cod sursa (job #909095) | Cod sursa (job #880883) | Cod sursa (job #604815) | Cod sursa (job #1640689) | Cod sursa (job #1760504)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
#define MAX 1000005
int values[MAX];
int main()
{
fstream f("loto.in",ios::in);
ofstream g("loto.out");
vector<int> vect;
int x,N,S,M,i,j,k,m,indice=0;
bool ok1 = 0, ok2 = 0;
f>>N>>S;
M= N;
do
{
f>>x;
vect.push_back(x);
}while(--M);
for(i=1;i<=N;++i)
for(j=i;j<=N;++j)
for(k=j;k<=N;++k)
values[++indice]=vect[i] + vect[j] + vect[k];
sort(values+1,values+indice+1);
for(i=1;i<=indice;++i)
{
if(binary_search(values+1,values+indice+1,S-values[i]))
{
m = S-values[i];
for(x=1;x<=N;++x)
for(j=x;j<=N;++j)
for(k=j;k<=N;++k)
{
if(ok1 == 1 && ok2 == 1) return 0;
if(!ok1)
if(vect[x]+vect[j]+vect[k] == values[i])
{
g<<vect[x]<<" "<<vect[j]<<" "<<vect[k]<<" ";
ok1 = 1;
}
if(!ok2)
if(vect[x]+vect[j]+vect[k] == m)
{
g<<vect[x]<<" "<<vect[j]<<" "<<vect[k]<<" ";
ok2 = 1;
}
}
return 0;
}
}
g<<"-1";
return 0;
}