Pagini recente » Cod sursa (job #168185) | Cod sursa (job #847838) | Cod sursa (job #2632532) | Cod sursa (job #914849) | Cod sursa (job #1536259)
#include <fstream>
#include <algorithm>
using namespace std;
int n,i,v[101],j,k,p,s2,x,y,u,m,t,ok,y2;
pair < pair<int,int> , pair <int,int> > s[100001];
ifstream fin ("loto.in");
ofstream fout ("loto.out");
int main (){
fin>>n>>s2;
for (i=1;i<=n;i++)
fin>>v[i];
k = 0;
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (t=j;t<=n;t++){
k++;
s[k].first.first = v[i]+v[j]+v[t];
s[k].first.second = v[i];
s[k].second.first = v[j];
s[k].second.second = v[t];
}
sort (v+1,v+n+1);
ok = 0;
for (i=1;i<=k;i++){
x = s2-s[i].first.first;
for (j=1;j<=n;j++){
y2 = x-v[j];
for (t=j;t<=n;t++){
y = y2-v[t];
p = 1;
u = n;
while (p<=u){
m = (p+u)/2;
if (v[m] == y)
break;
else{
if (v[m] < y)
p = m+1;
else
u = m-1;
}
}
if (p<=u){
fout<<s[i].first.second<<" "<<s[i].second.first<<" ";
fout<<s[i].second.second<<" "<<v[j]<<" "<<v[t]<<" "<<v[m];
ok = 1;
break;
}
}
if (ok == 1)
break;
}
if (ok == 1)
break;
}
if (ok == 0)
fout<<-1;
return 0;
}