Pagini recente » Cod sursa (job #3219183) | Cod sursa (job #2753726) | Cod sursa (job #1657291) | Cod sursa (job #2390139) | Cod sursa (job #2741941)
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
int n,S,v[101],st,dr,mij,i,j,k,t=0,a;
struct info
{
int suma;
int m;
int n;
int p;
};
info I[10000001];
bool cmp(info x, info y)
{
return x.suma<y.suma;
}
int main ()
{
ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>S;
for(i=0;i<n;i++)
f>>v[i];
for(i=0;i<n;i++)
for(j=i;j<n;j++)
for(k=j;k<n;k++)
{
I[t].suma=v[i]+v[j]+v[k];
I[t].m=v[i];
I[t].n=v[j];
I[t].p=v[k];
t++;
}
sort(I,I+t,cmp);
i=0;
while(i<t)
{
a=S-I[i].suma;
st=0;
dr=t-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(I[mij].suma==a)
{
g<<I[i].m<<" "<<I[i].n<<" "<<I[i].p<<" "<<I[mij].m<<" "<<I[mij].n<<" "<<I[mij].p;
return 0;
}
if(I[mij].suma>a)
dr=mij-1;
else
st=mij+1;
}
i++;
}
g<<-1;
f.close();
g.close();
return 0;
}