Pagini recente » Cod sursa (job #1068965) | Cod sursa (job #2861938) | Cod sursa (job #1815421) | Cod sursa (job #1556219) | Cod sursa (job #2669630)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, s, cnt, a[105];
struct loto{
int s, x1, x2, x3;
}suma[1000005];
bool comp(loto w, loto z)
{
return w.s > z.s;
}
int main() {
fin >> n >> s;
for (int i=1;i<=n;i++){
fin >> a[i];
}
for (int i=1;i<=n;i++){
for (int j=i;j<=n;j++){
for (int k=j;k<=n;k++){
suma[++cnt].s = a[i] + a[j] + a[k];
suma[cnt].x1 = a[i];
suma[cnt].x2 = a[j];
suma[cnt].x3 = a[k];
}
}
}
sort(suma+1, suma+cnt+1, comp);
for (int i=1;i<=cnt;i++){
int s1 = s - suma[i].s;
int st = 1, dr = cnt;
while(st <= dr){
int mijloc = (st+dr)/2;
if (suma[mijloc].s == s1){
fout << suma[i].x1 << " " << suma[i].x2 << " " << suma[i].x3 << " ";
fout << suma[mijloc].x1 << " " << suma[mijloc].x2 << " " << suma[mijloc].x3 << '\n';
return 0;
}
if (suma[mijloc].s > s1){
dr = mijloc-1;
}else{
st = mijloc+1;
}
}
}
fout << -1 << '\n';
return 0;
}