Pagini recente » Cod sursa (job #1877217) | Cod sursa (job #2813864) | Cod sursa (job #108535) | Cod sursa (job #723318) | Cod sursa (job #1762586)
#include <stdio.h>
#define MOD 666013
#define lene (v[i]+v[j]+v[y])
using namespace std;
int v[100], h[1000002], nxt[1000002], path[1000002][3], liste[MOD], a;
int search(int x){
int j;
for(j=liste[x%MOD];j!=0 && h[j]!=x;j=nxt[j]);
return j;
}
void add(int i, int j, int y){
if(search(lene)!=0)
return;
path[a][0]=v[i];
path[a][1]=v[j];
path[a][2]=v[y];
h[a]=lene;
nxt[a]=liste[lene%MOD];
liste[lene%MOD]=a;
a++;
}
int main()
{
int n, s, i, j, y, poz;
FILE *fi=fopen("loto.in", "r"), *fo=fopen("loto.out", "w");
fscanf(fi, "%d%d", &n, &s);
for(i=0;i<n;i++)
fscanf(fi, "%d", &v[i]);
a=2;
liste[0]=1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(y=0;y<n;y++)
add(i,j,y);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(y=0;y<n;y++)
if(s-lene>=0){
poz=search(s-lene);
if(poz!=0){
fprintf(fo, "%d %d %d %d %d %d", path[poz][0], path[poz][1], path[poz][2], v[i], v[j], v[y]);
fclose(fi);
fclose(fo);
return 0;
}
}
fprintf(fo, "-1");
fclose(fi);
fclose(fo);
return 0;
}