Pagini recente » Cod sursa (job #1350658) | Cod sursa (job #747748) | Cod sursa (job #1035002) | Cod sursa (job #2330261) | Cod sursa (job #2361280)
#include <fstream>
#include <algorithm>
using namespace std;
int n, s, i, j, k, v[101], st, dr, m;
struct doc {
int s;
int x, y, z;
}x[1000001];
int criteriu (doc a, doc b) {
return a.s<b.s;
}
int main () {
ifstream fin ("loto.in");
ofstream fout ("loto.out");
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++) {
x[++m].s=v[i]+v[j]+v[k];
x[m].x=v[i];
x[m].y=v[j];
x[m].z=v[k];
}
}
}
sort(x+1, x+m+1, criteriu);
for (i=1;i<=m;i++) {
int y=s-x[i].s;
st=i;
dr=m;
while (st<=dr) {
int mid = (st+dr)/2;
if (x[mid].s==y) {
fout<<x[i].x<<" "<<x[i].y<<" "<<x[i].z<<" "<<x[mid].x<<" "<<x[mid].y<<" "<<x[mid].z;
return 0;
}
if (x[mid].s<y)
st=mid+1;
else
dr=mid-1;
}
}
fout<<-1;
return 0;
}