Pagini recente » Cod sursa (job #1007090) | Cod sursa (job #779632) | Cod sursa (job #1364351) | Cod sursa (job #1425815) | Cod sursa (job #2240929)
#include <fstream>
#include <algorithm>
using namespace std;
int n, s, i, j, k, m, v[101], st, dr;
struct loto {
int s;
int x,y,z;
}V[1000001];
int criteriu(loto a, loto 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++) {
V[++m].s=v[i]+v[j]+v[k];
V[m].x=v[i];
V[m].y=v[j];
V[m].z=v[k];
}
}
}
sort(V+1,V+m+1, criteriu);
for (i=1;i<=m;i++) {
int x=s-V[i].s;
st=i;
dr=m;
while (st<=dr) {
int mid = (st+dr)/2;
if(V[mid].s==x) {
fout<<V[i].x<<" "<<V[i].y<<" "<<V[i].z<<" "<<V[mid].x<<" "<<V[mid].y<<" "<<V[mid].z;
return 0;
}
if (V[mid].s<x)
st=mid+1;
else
dr=mid-1;
}
}
fout<<-1;
return 0;
}