Pagini recente » Cod sursa (job #2578244) | Cod sursa (job #598970) | Cod sursa (job #1571683) | Cod sursa (job #1103516) | Cod sursa (job #2450302)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
struct sum
{
int a, b, c;
int sum = 600000002;
} sums[1000005];
bool sorter(sum a, sum b)
{
return a.sum < b.sum;
}
bool SortSums(sum a, sum b);
int main()
{
ifstream in ("loto.in");
ofstream out ("loto.out");
int n,s,r=0;
in>>n>>s;
int vec[n];
for(int i=0; i<n; i++)
in>>vec[i];
for(int q=0; q<n; q++)
for(int w=0; w<n; w++)
for(int e=w; e<n; e++)
{
sum d;
d.a = vec[q];
d.b = vec[w];
d.c = vec[e];
d.sum = d.a + d.b + d.c;
sums[r]=d;
r++;
}
sort(sums,sums+r,sorter);
for(int i=0; i<r; i++)
{
int t = s - sums[i].sum;
int right=r,left=0;
while(left<=right)
{
int mid = (right + left) / 2;
if(sums[mid].sum == t)
{
left = mid;
break;
}
else if(sums[mid].sum<t)
left = mid+1;
else right = mid-1;
}
if(sums[left].sum == t)
{
out<<sums[i].a<<" "<<sums[i].b<<" "<<sums[i].c<<" "<<sums[left].a<<" "<<sums[left].b<<" "<<sums[left].c;
return 0;
}
}
out<<"-1";
return 0;
}