Subset sum problem: Difference between revisions

Content added Content deleted
(+ second D entry)
Line 247: Line 247:
#include <stdlib.h>
#include <stdlib.h>


typedef struct { char* data; int weight; } item;
typedef struct { const char* data; int weight; } item;
typedef struct { int sum; unsigned int mask; } sum_t;
typedef struct { int sum; unsigned int mask; } sum_t;


Line 267: Line 267:
int cmp_sums(const void *a, const void *b)
int cmp_sums(const void *a, const void *b)
{
{
return ((sum_t*)a)->sum - ((sum_t*)b)->sum;
return ((const sum_t*)a)->sum - ((const sum_t*)b)->sum;
}
}


sum_t *mksums(item *p, int n, int shift)
sum_t *mksums(const item *p, int n, int shift)
{
{
sum_t *r = malloc(sizeof(*r) * (1 << n));
sum_t *r = malloc(sizeof(*r) * (1 << n));