Pagini recente » Cod sursa (job #1067629) | Cod sursa (job #393749) | Cod sursa (job #1945542) | Cod sursa (job #3250809) | Cod sursa (job #1760440)
#include <fstream>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 1000001
vector<int> values;
int indexes[MAX][3];
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,xd,yd,zd,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]);
indexes[vect[i] + vect[j] + vect[k]][0] = i;
indexes[vect[i] + vect[j] + vect[k]][1] = j;
indexes[vect[i] + vect[j] + vect[k]][2] = 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)
{
//afisam raspunsul
g<<vect[indexes[values[i]][0]]<<" "<<vect[indexes[values[i]][1]]<<" "<<vect[indexes[values[i]][2]]<<" "<<vect[indexes[values[m]][0]]<<" "<<vect[indexes[values[m]][1]]<<" "<<vect[indexes[values[m]][2]];
return 0;
}
}
g<<"-1";
return 0;
}