Pagini recente » Cod sursa (job #137656) | Cod sursa (job #1642634) | Cod sursa (job #1666136) | Cod sursa (job #1715849) | Cod sursa (job #1275874)
#include "stdio.h"
#include "stdlib.h"
#include <algorithm>
using namespace std;
int S,N,vec[101];
FILE *f,*g;
struct suma
{
int i,j,k,sum;
}v[1000001];
int compare(suma a,suma b)
{
return (a.sum<b.sum);
}
int main()
{
f=fopen("loto.in","r");
g=fopen("loto.out","w");
fscanf(f,"%d %d",&N,&S);
int i,j,ind=1,suma,mijloc,a,b,k;
for(i=1; i<=N; i++)
fscanf(f,"%d",&vec[i]);
for(i=1; i<=N; i++)
{
for(j=1; j<=N; j++)
{
for(k=1; k<=N; k++)
{
v[ind].i=vec[i];
v[ind].j=vec[j];
v[ind].k=vec[k];
v[ind].sum=v[ind].i+v[ind].j+v[ind].k;
ind++;
}
}
}
ind--;
sort(v+1,v+ind+1,compare);
for(i=1; i<=ind; i++)
{
suma=S-v[i].sum;
a=1;
b=ind;
while(a<=b)
{
mijloc=(a+b)/2;
if(v[mijloc].sum==suma)
{
fprintf(g,"%d %d %d %d %d %d",v[i].i,v[i].j,v[i].k,v[mijloc].i,v[mijloc].j,v[mijloc].k);
return 0;
}
if(v[mijloc].sum>suma)
b=mijloc-1;
if(v[mijloc].sum<suma)
a=mijloc+1;
}
}
fprintf(g,"-1");
}