Pagini recente » Cod sursa (job #1827069) | Cod sursa (job #714254) | Cod sursa (job #1660597) | Cod sursa (job #2710398) | Cod sursa (job #504724)
Cod sursa(job #504724)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *fin,*fout;
int n,s,v[101],i,j,k,p,sc;
struct sum{
int s;
int a;
int b;
int c;
} w[1000001];
int cmp(sum a, sum b){
if(a.s<b.s){return 1;}
return 0;
}
int cautare(int x){
int i=1,s=p,m;
while(i<=s){
m=(i+s)/2;
if(w[m].s==x){return m;}
if(w[m].s<x){i=m+1;}
else
s=m-1;
}
return 0;
}
int main(){
fin=fopen("loto.in","r");
fout=fopen("loto.out","w");
fscanf(fin,"%d %d",&n,&s);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
}
for(i=1;i<=n;i++){
for(j=i;j<=n;j++){
for(k=j;k<=n;k++){
p++;
w[p].s=v[i]+v[j]+v[k];
w[p].a=v[i];
w[p].b=v[j];
w[p].c=v[k];
}
}
}
sort(w+1,w+p+1,cmp);
for(i=1;i<=p;i++){
sc=s-w[i].s;
k=cautare(sc);
if(k!=0){
fprintf(fout,"%d %d %d %d %d %d",w[i].a,w[i].b,w[i].c,w[k].a,w[k].b,w[k].c);
return 0;
}
}
fprintf(fout,"-1");
return 0;}