Pagini recente » Cod sursa (job #230037) | Cod sursa (job #1517460) | Cod sursa (job #2105001) | Cod sursa (job #970085) | Cod sursa (job #2405148)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
long long n,i,j,k,a[101],cnt,st,dr,mid,s;
struct sum{
long long s;
long long x;
long long y;
long long z;
} v[1000001];
bool cmp(const sum &a, const sum &b){
return a.s<b.s;
}
int main(){
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>a[i];
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++){
cnt++;
v[cnt].s=a[i]+a[j]+a[k];
v[cnt].x=a[i]; v[cnt].y=a[j]; v[cnt].z=a[k];
}
sort(v+1,v+cnt+1,cmp);
for(i=1;i<cnt;i++){
st=i+1; dr=cnt;
while(st<=dr){
mid=(st+dr)/2;
if(v[i].s+v[mid].s==s){
fout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<" "<<v[mid].x<<" "<<v[mid].y<<" "<<v[mid].z;
return 0;
}
if(v[i].s+v[mid].s<s)
st=mid+1;
else
dr=mid-1;
}
}
fout<<-1;
return 0;
}