
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <fstream>
#include <iostream>
using namespace std;

int main( int argc, char** argv ) {
	if ( argc != 3 ) {
		printf("usage\n");
		return -1;
	}
	int id1 = atoi(argv[1]);
	int id2 = atoi(argv[2]);

	char filename1[1000];
	char filename2[1000];
	sprintf( filename1, "cumulative_histograms/%d.txt", id1 );
	sprintf( filename2, "cumulative_histograms/%d.txt", id2 );

	//ifstream in1(filename1);
	//ifstream in2(filename2);
	FILE* in1 = fopen(filename1,"r");
	FILE* in2 = fopen(filename2,"r");

	double l1_dist = 0;
	double l2_dist = 0.0;
	double linf_dist = 0;

	int x1, x2, diff;
	char line1[64];
	char line2[64];
	for ( int i=0; i<16777216; i++ ) {
		//string line1 = "";
		//string line2 = "";
		//getline(in1,line1);
		//getline(in2,line2);
		fgets( line1, 63, in1 );
		fgets( line2, 63, in2 );
		x1 = atoi( line1 );
		x2 = atoi( line2 );

		diff = abs(x1-x2);
		l1_dist += diff;
		l2_dist += ((float)diff) * ((float)diff);
		if ( diff > linf_dist ) {
			linf_dist = diff;
		}
	}
	l2_dist = sqrt( l2_dist );
	printf( "L1: %lf\n", l1_dist );
	printf( "L2: %lf\n", l2_dist );
	printf( "Linf: %lf\n", linf_dist );

	//in1.close();
	//in2.close();
	fclose( in1 );
	fclose( in2 );

	return 0;
}

