Pagini recente » Cod sursa (job #3212810) | Cod sursa (job #1165190) | Cod sursa (job #1641057) | Cod sursa (job #1111202) | Cod sursa (job #498162)
Cod sursa(job #498162)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *f=fopen("loto.in","r");
FILE *g=fopen("loto.out","w");
struct nr{
int x;
int y;
int z;
int sum;}
a[1030301];
int cmp(nr a,nr b){
if(a.sum>b.sum)
return 0;
return 1;
}
int N,S,v[101],i,j,k,x,m,scr;
int main(){
fscanf(f,"%d%d",&N,&S);
for(i=1;i<=N;i++)
fscanf(f,"%d",&v[i]);
x=0;
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
for(k=1;k<=N;k++)
a[++x].sum=v[i]+v[j]+v[k],a[x].x=v[i],a[x].y=v[j],a[x].z=v[k];
sort(a+1,a+x+1,cmp);
for(i=1;i<=x;i++){
scr=S-a[i].sum;
int p=1,u=N;
while(p<=u){
m=(p+u)/2;
if(scr==a[m].sum){
fprintf(g,"%d %d %d %d %d %d",a[i].x,a[i].y,a[i].z,a[m].x,a[m].y,a[m].z);
return 0;
}
if(a[m].sum>scr)
u=m-1;
else p=m+1;
}
}
fprintf(g,"-1");
return 0;
}