Pagini recente » Cod sursa (job #3003859) | Cod sursa (job #706707) | Cod sursa (job #2609121) | Cod sursa (job #1884318) | Cod sursa (job #977903)
Cod sursa(job #977903)
#include <cstdio>
#include <algorithm>
#define DIM 101
using namespace std;
struct trei {
int a;
int b;
int c;
int s;
};
int cmp(trei a, trei b) {
return a.s < b.s;
}
trei v[DIM*DIM*DIM];
int a[DIM];
int n, s, i, j, k, x, p, u, m, t;
int main() {
//ifstream fin("loto.in");
//ofstream fout("loto.out");
FILE *f=fopen("loto.in","r");
FILE *g=fopen("loto.out","w");
//fin>>n>>s;
fscanf(f,"%d %d",&n,&s);
for (i=1;i<=n;i++)
//fin>>a[i];
fscanf(f,"%d",&a[i]);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++) {
t++;
v[t].s = a[i]+a[j]+a[k];
v[t].a = a[i];
v[t].b = a[j];
v[t].c = a[k];
}
sort(v+1, v+t+1, cmp);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++) {
x = s - (a[i] + a[j] + a[k]);
//caut binar pe x in v
p = 1;
u = t;
while (p<=u) {
m = (p+u)/2;
if (v[m].s == x) {
//fout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
fprintf(g,"%d ",a[i]);
fprintf(g,"%d ",a[j]);
fprintf(g,"%d ",a[k]);
fprintf(g,"%d ",v[m].a);
fprintf(g,"%d ",v[m].b);
fprintf(g,"%d ",v[m].c);
//fout<<v[m].a<<" "<<v[m].b<<" "<<v[m].c<<" ";
return 0;
}
if (v[m].s > x) {
u = m-1;
} else {
p = m+1;
}
}
}
fprintf(g,"-1");
return 0;
}