Pagini recente » Cod sursa (job #594691) | Cod sursa (job #3201173) | Cod sursa (job #2508249) | Cod sursa (job #1860711) | Cod sursa (job #2391957)
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n, S, v[105], t;
struct loto
{
int s, x1, x2, x3;
}a[1000100];
int mycmp(loto a, loto b)
{
return a.s < b.s;
}
int main()
{
f >> n >> S;
for(int i=1; i<=n; i++) f >> v[i];
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
for(int k=1; k<=n; k++)
{ a[++t].s = v[i] + v[j] + v[k];
a[t].x1 = i;
a[t].x2 = j;
a[t].x3 = k;
}
sort(a+1, a+t+1, mycmp);
for(int i=1; i<=t; i++)
{
int st = 1;
int dr = t;
while(st <= dr)
{
int mij = (st + dr) / 2;
if(a[mij].s == S-a[i].s)
{
g << v[a[i].x1] << ' ' << v[a[i].x2] << ' ' << v[a[i].x3] << ' ' << v[a[mij].x1]
<< ' ' << v[a[mij].x2] << ' ' << v[a[mij].x3] << '\n';
return 0;
}
else if(a[mij].s > S-a[i].s) dr = mij - 1;
else st = mij + 1;
}
}
g << -1 << '\n';
return 0;
}