Pagini recente » Cod sursa (job #1289633) | Cod sursa (job #2052094) | Cod sursa (job #2904691) | Cod sursa (job #367771) | Cod sursa (job #2223161)
#include <fstream>
#include <algorithm>
using namespace std;
int v[103];
struct suma {
int s;
int a, b, c;
};
bool cmp (suma A, suma B) {
return A.s < B.s;
}
suma sum[1000003];
int cb(int x, int m) {
int st, dr, mij;
st = 0;
dr = m;
while (st <= dr) {
mij = (st + dr) / 2;
if (sum[mij].s > x)
dr = mij - 1;
else if (sum[mij].s < x)
st = mij + 1;
else
return mij;
}
return -1;
}
int main() {
ifstream cin ("loto.in");
ofstream cout ("loto.out");
int n, s, i, j, k, m, x, a;
cin >> n >> s;
for (i = 0; i < n; i++)
cin >> v[i];
m = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (k = 0; k < n; k++) {
sum[m].s = v[i] + v[j] + v[k];
sum[m].a = v[i];
sum[m].b = v[j];
sum[m].c = v[k];
m++;
}
}
}
sort (sum, sum + m, cmp);
int st, dr;
st = 0;
dr = m - 1;
while (st <= dr) {
if (sum[st].s + sum[dr].s == s) {
i = st;
a = dr;
cout << sum[i].a;
cout << " ";
cout << sum[i].b;
cout << " ";
cout << sum[i].c;
cout << " ";
cout << sum[a].a;
cout << " ";
cout << sum[a].b;
cout << " ";
cout << sum[a].c;
return 0;
}
if (sum[st].s + sum[dr].s > s)
dr--;
st++;
}
cout << -1;
return 0;
}