#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>


//#define DIVISOR 100 //gold

//#define DIVISOR 1000 //oil

#define DIVISOR 0

/*
#define DIVISOR 5000 //silver
#define DIVISOR 200 //platinum
#define DIVISOR 1000 //oil
#define DIVISOR 50 //es
#define DIVISOR 25000 //copper
*/

int main(int argc, char **argv){

	double *shares;
	double *prices;
	double total_shares = 0;
	uint32_t num1, num2;
	double commission = 0;
	double avg_price = 0;
	double comm_per_trade = 6.95;
	double entries = 0;
//	double comm_per_contract = 0.75;

	//double tmp1 = 0;

	if(argc < 3){
		printf("error input needs to be pairs!\n");
		return 0;
	}
	if((argc+2) % 2 != 0){
		printf("error input needs to be pairs!\n");
		return 0;
	}

	entries = atof(argv[1]);
	//entries = (double *)malloc(sizeof(double)*(argc+1));
	shares  = (double *)malloc(sizeof(double)*(argc+2));
	prices  = (double *)malloc(sizeof(double)*(argc+2));

	num2 = 0;
	for(num1=2; num1<argc-1; num1+=2){
		shares[num2] = atof(argv[num1]);
		total_shares += shares[num2];
		num2++;
		//commission += comm_per_trade;
	}

//	commission += comm_per_trade;
commission = (entries+1) * comm_per_trade;
	//printf("total commission: %lf\n", commission);
	num2 = 0;
	for(num1=3; num1<argc; num1+=2){
		prices[num2] = atof(argv[num1]);
		avg_price += prices[num2] * shares[num2];

		//commission += comm_per_contract*shares[num2]/DIVISOR;

		num2++;
	}

	//commission += comm_per_contract*total_shares/DIVISOR;

	//commission += comm_per_contract*total_shares*num2;
	//avg_price += commission;
	avg_price /= total_shares;


	printf("total shares: %lf\n", total_shares);
	printf("avg price %lf\n", avg_price);
	printf("total commission: %lf\n", commission);

	free(shares);
	free(prices);

	return 0;
}
