#include <stdio.h>

i,t,e,m;f(p,n,s)int*p,*n,*s;{s=p;for(i=m=e=0;i++<*n;s+=t=m+*s||i<*n&&p[1],e+=t,m=*p++)*s=*p;*n=e;}

int main(void) {
	int arr[] = {0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 4, 0, 1, 0, 0}, *ptr = arr;
	int size = sizeof(arr)/sizeof(*arr);
	
	//print initial list
	printf("%d: ", size);
	while (size--)
		printf("%d ", *ptr++);
	puts("");
	
	//print modified list
	ptr = arr;
    size = sizeof(arr)/sizeof(*arr);
	f(arr, &size);
	printf("%d: ", size);
	while (size--)
		printf("%d ", *ptr++);
    puts("");
	return 0;
}
