Pagini recente » Cod sursa (job #873843) | Cod sursa (job #2482435) | Cod sursa (job #614095) | Cod sursa (job #2233184) | Cod sursa (job #1760451)
#include <fstream>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 100000001
vector<int> values;
int main()
{
fstream f("loto.in",ios::in);
ofstream g("loto.out");
vector<int> vect;
int x,N,S,M,i,j,k,y,m,res;
f>>N>>S;
M= N;
do
{
f>>x;
vect.push_back(x);
}while(--M);
for(i=0;i<N;++i)
for(j=0;j<N;++j)
for(k=0;k<N;++k)
values.push_back(vect[i] + vect[j] + vect[k]);
sort(values.begin(),values.end());
res = values.size();
for(i=0;i<res;++i)
{
x = 0;
y = res-1;
m = (x+y)/2;
while(x!=y && (values[i]+values[m])!=S)
{
if(values[m]+values[i]<S) x = m+1;
else if(values[m]+values[i]>S) y = m-1;
m = (x+y)/2;
}
if((values[i]+values[m])==S)
{
for(x=0;x<N;++x)
for(j=0;j<N;++j)
for(k=0;k<N;++k)
{
if(vect[x]+vect[j]+vect[k] == values[i])
{
g<<vect[x]<<" "<<vect[i]<<" "<<vect[k]<<" ";
goto B;
}
}
B:
for(x=0;x<N;++x)
for(j=0;j<N;++j)
for(k=0;k<N;++k)
{
if(vect[x]+vect[j]+vect[k] == values[m])
{
g<<vect[x]<<" "<<vect[i]<<" "<<vect[k];
return 0;
}
}
}
}
g<<"-1";
return 0;
}