#include <stdio.h>

int grapes(int n)  { return n > 1 ? 0.8 * n : n; }
int apples(int n)  { return (n / 2 | 0) + n % 2; } 
int normal(int n)  { return n; } 

int prices[] = {10,20,30};
int (*f[])(int) = {grapes, apples, normal}; 

int total(int counts[]){
	int sum=0;
	for (int i=0;i<2;++i) sum+=(*f[i])(counts[i])*prices[i];
	return sum;
}

int main() {

	#define OUT(a,b,c) printf("%d\n",total( ((int[]){a,b,c} )));
	OUT(1,0,1);
	OUT(2,0,1);
	OUT(3,0,1);
	OUT(4,0,1);
	OUT(4,1,1);
	OUT(4,2,1);
	OUT(4,3,1);
	#undef OUT

	return 0;
}
