Pagini recente » Cod sursa (job #1036460) | Cod sursa (job #2494754) | Cod sursa (job #366014) | Cod sursa (job #1727533) | Cod sursa (job #1536533)
#include <fstream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,i,v[101],j,k,p,s2,u,m,t,ok;
long long x,y2,y;
pair < pair<long long ,int> , pair <int,int> > s[200005];
FILE *fin = fopen("loto.in","r");
FILE *fout = fopen("loto.out","w");
//ifstream fin ("loto.in");
//ofstream fout ("loto.out");
int main (){
fscanf (fin,"%d%d",&n,&s2);
for (i=1;i<=n;i++)
fscanf (fin,"%d",&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<=n;i++){
for (j=i;j<=n;j++){
for (t=j;t<=n;t++){
x = v[i]+v[j]+v[t];
x = s2-x;
p = 1;
u = k;
while (p<=u){
m = (p+u)/2;
if (s[m].first.first == x)
break;
else{
if (s[m].first.first < x)
p = m+1;
else
u = m-1;
}
}
if (p<=u){
fprintf (fout,"%d %d %d " , v[i] , v[j] , v[t] );
fprintf (fout,"%d %d %d ",s[m].first.second , s[m].second.first,s[m].second.second);
ok = 1;
break;
}
}
if (ok == 1)
break;
}
if (ok == 1)
break;
}
/* 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){
fprintf (fout,"%d %d ",s[i].first.second , s[i].second.first);
fprintf (fout,"%d %d %d %d",s[i].second.second , v[j] , v[t] , v[m] );
ok = 1;
break;
}
}
if (ok == 1)
break;
}
if (ok == 1)
break;
}
*/ if (ok == 0)
fprintf (fout, "-1");
return 0;
}