Pagini recente » Cod sursa (job #2982722) | Cod sursa (job #1727913) | Cod sursa (job #614684) | Cod sursa (job #2588368) | Cod sursa (job #2403459)
#include <bits/stdc++.h>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct configuratii{
int e1, e2, e3, suma;
}toate_configuatiile[1000005];
bool operator < (configuratii a, configuratii b)
{
return a.suma<b.suma;
}
int n, s, elem[105], ind=1, ramase;
void rezolvare()
{
for (int i=1; i<ind; ++i)
{
ramase=s-toate_configuatiile[i].suma;
int st=1, dr=ind-1, mij;
while (st<=dr)
{
mij=(st+dr)/2;
if (toate_configuatiile[mij].suma==ramase)
{
g << toate_configuatiile[i].e1 <<' ' << toate_configuatiile[i].e2 <<' ' << toate_configuatiile[i].e3 <<' ' << toate_configuatiile[mij].e1 <<' ' << toate_configuatiile[mij].e2 <<' ' << toate_configuatiile[mij].e3;
return;
}
if (toate_configuatiile[mij].suma<ramase)
{
st=mij+1;
}
else
dr=mij-1;
}
}
g << -1;
}
int main() {
f >> n >> s;
for (int i=1; i<=n; ++i)
{
f >> elem[i];
}
for (int i=1; i<=n; ++i)
{
for (int j=i; j<=n; ++j)
{
for (int t=i; t<=n; ++t)
{
toate_configuatiile[ind].suma=elem[i]+elem[j]+elem[t];
toate_configuatiile[ind].e1=elem[i];
toate_configuatiile[ind].e2=elem[j];
toate_configuatiile[ind].e3=elem[t];
++ind;
}
}
}
sort(toate_configuatiile+1,toate_configuatiile+ind);
rezolvare();
return 0;
}