[ create a new paste ] login | about

Link: http://codepad.org/IAw1LyuD    [ raw code | output | fork ]

C, pasted on Jan 24:
#include <stdio.h>
#include <stdlib.h>

#define N 100
#define ARRAY_MAX 26

typedef struct tag_data {
	int array[ARRAY_MAX];
	int n;
	struct tag_data * next;
} DATA;

DATA data[N] = {{{0}}};

void init()
{
	int i, j;
	for (i=0; i<N; i++)
		for (j=0; j<ARRAY_MAX; j++)
			data[i].array[j] = j;
	
	for (i=0; i<N-1; i++)
		data[i].next = &data[i + 1];
	data[i].next = NULL;
}
void roll(int * array)
{
	int i, k;
	for (i=0; i<ARRAY_MAX-1; i++) {
		k = array[i];
		array[i] = array[i + 1];
		array[i + 1] = k;
	}
}

void encode(int * value, DATA * temp)
{
	DATA * node;
	
	if (temp == NULL)
		return;
	
	for (node = temp; node != NULL; node = node->next)
		*value ^= node->array[0];
	
	temp->n++;
	roll (temp->array);
	if (temp->n == ARRAY_MAX) {
		temp->n = 0;
		encode (value, temp->next);
	}
	
	return;
}

int main(int argc, char *argv[])
{
	int value = 123;
	
	init();
	
	while (data[N-1].n != ARRAY_MAX-1)
		encode (&value, &data[0]);
	
	printf("%d\n", value);
	
	return 0;
}


Output:
1
Timeout


Create a new paste based on this one


Comments: