#include <cstdlib>
#include <iostream>
#include <time.h>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main () {
//Declarations for I/O files
ifstream inputFile;
//Open file list and count number of files
inputFile.clear();
inputFile.open("filelist.txt", ios::in);
//exit and prompt error message if file could not be opened
if (!inputFile){
cerr << "File list could not be opened" << endl;
exit(1);
}// end if
// count number of lines in the data file and prompt on screen
int number_of_files = 0;
std::string line;
while (getline(inputFile, line))
number_of_files++;
cout << "Number of files to be analyzed: " << number_of_files << endl;
std::string *filelist;
filelist = new string[number_of_files];
inputFile.close();
//Re-open file list and store filenames in a string array
inputFile.clear();
inputFile.open("filelist.txt", ios::in);
//exit and prompt error message if file could not be opened
if (!inputFile){
cerr << "File list could not be opened" << endl;
exit(1);
}// end if
// store filenames
int i = 0;
while (getline(inputFile, line)){
filelist[i] = line;
//cout << filelist[i] << endl;
i = i + 1;
}
inputFile.close();
//open first file in the list, I deleted the loop to focus on the first element for now
inputFile.clear();
inputFile.open(filelist[0].c_str(), ios::in);
//exit and prompt error message if file could not be opened
if (!inputFile){
cerr << "Data file could not be opened" << endl;
exit(1);
}// end if
}
I2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHRpbWUuaD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxmc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4gKCkgewogIC8vRGVjbGFyYXRpb25zIGZvciBJL08gZmlsZXMKCiAgaWZzdHJlYW0gaW5wdXRGaWxlOwoKICAgICAgLy9PcGVuIGZpbGUgbGlzdCBhbmQgY291bnQgbnVtYmVyIG9mIGZpbGVzCiAgaW5wdXRGaWxlLmNsZWFyKCk7CiAgaW5wdXRGaWxlLm9wZW4oImZpbGVsaXN0LnR4dCIsIGlvczo6aW4pOwoKICAvL2V4aXQgYW5kIHByb21wdCBlcnJvciBtZXNzYWdlIGlmIGZpbGUgY291bGQgbm90IGJlIG9wZW5lZAogIGlmICghaW5wdXRGaWxlKXsKICAgICAgY2VyciA8PCAiRmlsZSBsaXN0IGNvdWxkIG5vdCBiZSBvcGVuZWQiIDw8IGVuZGw7CiAgICAgIGV4aXQoMSk7CiAgfS8vIGVuZCBpZgoKICAvLyBjb3VudCBudW1iZXIgb2YgbGluZXMgaW4gdGhlIGRhdGEgZmlsZSBhbmQgcHJvbXB0IG9uIHNjcmVlbgogIGludCBudW1iZXJfb2ZfZmlsZXMgPSAwOwoKICBzdGQ6OnN0cmluZyBsaW5lOwogIHdoaWxlIChnZXRsaW5lKGlucHV0RmlsZSwgbGluZSkpICAgICAgICAKICAgICAgbnVtYmVyX29mX2ZpbGVzKys7CgogIGNvdXQgPDwgIk51bWJlciBvZiBmaWxlcyB0byBiZSBhbmFseXplZDogIiA8PCBudW1iZXJfb2ZfZmlsZXMgPDwgZW5kbDsKCiAgc3RkOjpzdHJpbmcgKmZpbGVsaXN0OwogIGZpbGVsaXN0ID0gbmV3IHN0cmluZ1tudW1iZXJfb2ZfZmlsZXNdOwogIGlucHV0RmlsZS5jbG9zZSgpOwoKICAvL1JlLW9wZW4gZmlsZSBsaXN0IGFuZCBzdG9yZSBmaWxlbmFtZXMgaW4gYSBzdHJpbmcgYXJyYXkKICBpbnB1dEZpbGUuY2xlYXIoKTsKICBpbnB1dEZpbGUub3BlbigiZmlsZWxpc3QudHh0IiwgaW9zOjppbik7CgogIC8vZXhpdCBhbmQgcHJvbXB0IGVycm9yIG1lc3NhZ2UgaWYgZmlsZSBjb3VsZCBub3QgYmUgb3BlbmVkCiAgaWYgKCFpbnB1dEZpbGUpewogICAgICBjZXJyIDw8ICJGaWxlIGxpc3QgY291bGQgbm90IGJlIG9wZW5lZCIgPDwgZW5kbDsKICAgICAgZXhpdCgxKTsKICB9Ly8gZW5kIGlmCgogIC8vIHN0b3JlIGZpbGVuYW1lcwogIGludCBpID0gMDsKICB3aGlsZSAoZ2V0bGluZShpbnB1dEZpbGUsIGxpbmUpKXsKICAgICAgZmlsZWxpc3RbaV0gPSBsaW5lOwogICAgICAvL2NvdXQgPDwgZmlsZWxpc3RbaV0gPDwgZW5kbDsKICAgICAgaSA9IGkgKyAxOwogIH0gICAgICAgIAoKICBpbnB1dEZpbGUuY2xvc2UoKTsKCiAgLy9vcGVuIGZpcnN0IGZpbGUgaW4gdGhlIGxpc3QsIEkgZGVsZXRlZCB0aGUgbG9vcCB0byBmb2N1cyBvbiB0aGUgZmlyc3QgZWxlbWVudCBmb3Igbm93CgogIGlucHV0RmlsZS5jbGVhcigpOwogIGlucHV0RmlsZS5vcGVuKGZpbGVsaXN0WzBdLmNfc3RyKCksIGlvczo6aW4pOwoKICAvL2V4aXQgYW5kIHByb21wdCBlcnJvciBtZXNzYWdlIGlmIGZpbGUgY291bGQgbm90IGJlIG9wZW5lZAogIGlmICghaW5wdXRGaWxlKXsKICAgICAgY2VyciA8PCAiRGF0YSBmaWxlIGNvdWxkIG5vdCBiZSBvcGVuZWQiIDw8IGVuZGw7CiAgICAgIGV4aXQoMSk7CiAgfS8vIGVuZCBpZgp9Cg==