Pagini recente » Cod sursa (job #895056) | Cod sursa (job #2760254) | Cod sursa (job #2410345) | Cod sursa (job #1672440) | Cod sursa (job #1762542)
#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;
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;
}