Pagini recente » Diferente pentru implica-te/arhiva-educationala intre reviziile 58 si 223 | Monitorul de evaluare | Cod sursa (job #381849) | Cod sursa (job #3252284) | Cod sursa (job #1140949)
//#include <iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
int i,j,k,n,s,v[101],x;
struct conf{
int sum;
int a,b,c;
};
conf c[1000000];
bool cmp(conf x, conf y){
return (x.sum<y.sum);
}
int main(){
cin>>n>>s;
for(i=1;i<=n;i++){
cin>>v[i];
}
int nr=0;
c[0].sum=-1000000000;
for(i=1;i<=n;i++){
for(j=i;j<=n;j++){
for(k=j;k<=n;k++){
nr++;
c[nr].sum=v[i]+v[j]+v[k];
c[nr].a=v[i];
c[nr].b=v[j];
c[nr].c=v[k];
}
}
}
nr++;
c[nr].sum=1000000000;
sort(c,c+nr+1,cmp);
for(i=0;i<=nr;i++){
int st=0;
int dr=nr;
while(st<dr){
int mid=(st+dr)/2;
if(c[i].sum+c[mid].sum<s){
st=mid+1;
}else{
dr=mid;
}
}
if(c[i].sum+c[st].sum==s){
cout<<c[i].a<<" "<<c[i].b<<" "<<c[i].c<<" "<<c[st].a<<" "<<c[st].b<<" "<<c[st].c;
return 0;
}
}
cout<<-1;
return 0;
}