Pagini recente » Cod sursa (job #1525316) | Cod sursa (job #2735690) | Cod sursa (job #1280630) | Cod sursa (job #2412424) | Cod sursa (job #1774120)
#include <fstream>
#include <algorithm>
#define s first
#define x second.first
#define y second.second.first
#define z second.second.second
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
pair <int, pair<int, pair <int,int> > > r[4000010];
int v[110],st,dr,mid,n,S,i,j,k,p;
int main () {
fin>>n>>S;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++){
r[++p].s=v[i]+v[j]+v[k];
r[p].x=v[i];
r[p].y=v[j];
r[p].z=v[k];
}
sort(r+1,r+p+1);
for(i=1;i<=p;i++){
st=r[i].s;
dr=r[p].s;
while(st<=dr){
mid=(st+dr)/2;
if(r[i].s+r[mid].s==S){
fout<<r[i].x<<" "<<r[i].y<<" "<<r[i].z<<" "<<r[mid].x<<" "<<r[mid].y<<" "<<r[mid].z;
return 0;
}
else
if(r[mid].s>S)
dr=mid-1;
else
st=mid+1;
}
}
fout<<-1;
}