dealth with precision issues (use unsigned long long int for file reading)