//Berezvai Dániel
//BEDTACI.ELTE
//Ismerjük egy tájékozódási futóverseny idöméréseit versenyzönként: (indulási idö, érkezési idö). Állapítsuk meg, ki a gyöztes!
//Fájlformátum: "név ind érk\n" szóközökkel elkülönített, soronként új versenyzö, az idök unix timestamp-ként vannak feljegyezve. A név csak egy szó lehet, szóköz helyett pont.
#include <iostream>
#include <stdlib.h>
#include <sstream>
#include <fstream>
using namespace std;

ifstream f ("futoversenyidok.be");
ofstream o ("futoversenyido.ki");

string itos(int i){ //integer to string
	stringstream s;
	s<<i;
	return s.str();
}

int stoi(string s){ //string to integer
	return atoi(s.c_str());
}

string dtos(double i){ //double to string
	stringstream s;
	s<<i;
	return s.str();
}

int getStrIntIntArrF(int maxN, string arr1[], int arr2[], int arr3[]){
	int i=0;
	string s;
	while(!f.eof() && i<maxN){
		getline(f,arr1[i],' ');
		getline(f,s,' ');
		arr2[i]=stoi(s);
		getline(f,s);
		arr3[i]=stoi(s);
		i++;
	}
	return i;
}

void KulonbsegMasolas(int maxN, int egy[], int ket[], int ki[]){
	for(int i=0;i<maxN;i++){
		ki[i]=egy[i]-ket[i];
	}
}

int MinimumKivalasztas(int maxN, int be[]){
	int mx=0;
	for(int i=0;i<maxN;i++){
		if(be[i]<be[mx]){mx=i;}
	}
	return mx;
}

void out(string s){
	cout<<s<<endl;
	o<<s<<endl;
}

int main(){
	out("Futoverseny Nyertese\n\n");

	int maxN=100;
	string nevek[maxN];
	int ind[maxN];
	int erk[maxN];
	int N=getStrIntIntArrF(100, nevek, ind, erk);
	out("Beolvastam "+itos(N)+" nevet es "+itos(2*N)+" UNIX timestamp adatot.");

	int idok[N];//Itt mar tudjuk, mekkora lesz a tomb, ezert maxN helyett eleg az N. (Hasznalhatnam a sorSzamol funkciot a beolvasas legelejen, de az tobb futasido, mint maxN=100-zal dolgozni.)

	KulonbsegMasolas(N, erk, ind, idok);
	int nyertes=MinimumKivalasztas(N, idok);

/**/
for(int i=0;i<N;i++){
	out("Futo: "+nevek[i]+" Ideje: "+itos(idok[i])+" masodperc. ("+dtos(idok[i]/3600.	)+" ora)");
}
//*/

	out("Nyertes: "+nevek[nyertes]+"\nIdeje: "+itos(idok[nyertes])+" masodperc. ("+dtos(idok[nyertes]/3600.)+" ora)");
	f.close(); o.close();
	cout<<endl<<"Kesz.";
	return 0;
}
