Pagini recente » Cod sursa (job #2287482) | Cod sursa (job #2958869) | Cod sursa (job #1845302) | Cod sursa (job #169933) | Cod sursa (job #568076)
Cod sursa(job #568076)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f,*g;
int n,s,a[101],k=0;
struct sum
{int s;
int b1,b2,b3;
}v[1000001];
int cmp(sum a,sum b)
{if(a.s<b.s)
return 1;
return 0;
}
int search(int x)
{int p,u,m;
p=1;
u=k;
while(p<=u)
{m=(p+u)/2;
if(x==v[m].s)
return m;
else
if(x<v[m].s)
u=m-1;
else p=m+1;
}
return 0;
}
int main()
{int i,j;
f=fopen("loto.in","r");
g=fopen("loto.out","w");
fscanf(f,"%d %d",&n,&s);
for(i=1;i<=n;i++)
fscanf(f,"%d",&a[i]);
int p;
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(p=j;p<=n;p++)
{k++;
v[k].s=a[i]+a[j]+a[p];
v[k].b1=a[i];
v[k].b2=a[j];
v[k].b3=a[p];
}
sort(v+1,v+k+1,cmp);
int x;
for(i=1;i<=k;i++)
{x=s-v[i].s;
p=search(x);
if(p!=0)
{
fprintf(g,"%d %d %d %d %d %d",v[i].b1,v[i].b2,v[i].b3,v[p].b1,v[p].b2,v[p].b3);
return 0;
}
}
fprintf(g,"-1");
return 0;
}