/*
*
* # cc -g -O2 -Wall -pedantic argshuf.c -o argshuf
* # cp -vfi argshuf /usr/bin/
*
*/#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#define INITSIZE 31
int main(void) {
char **list, **temp, input[200];
int size = INITSIZE, i = 0, j;
struct timeval time;
gettimeofday(&time,NULL);
srand(time.tv_usec);
list = malloc(size*sizeof(char *));
while(!feof(stdin)) {
fscanf(stdin,"%s\n",input);
if(i >= size) {
temp = (char **) calloc((size*=2),sizeof(char *));
for(j=0;j<i;++j) temp[j] = list[j];
free(list);
list = temp;
}
list[i] = (char *) malloc((strlen(input)+1)*sizeof(char));
strcpy(list[i++],input);
}
printf("%s\n",list[(int)((double)i * (rand() / (RAND_MAX + 1.0)))]);
for(j=0;j<i;++j) free(list[j]);
free(list);
return EXIT_SUCCESS;
}