/*
 * ZHStudentSoluetion.h
 *
 *  Created on: 2015. dec. 13.
 *      Author: Tamás
 */

#ifndef ZHSTUDENTSOLUTION_H_
#define ZHSTUDENTSOLUTION_H_

#include <string>
#include <vector>
#include <map>
#include <iostream>

struct DayOfYear {
	short int month, day;
};

struct MinorPlanet {
	unsigned int number;
	std::string name;
	std::string temporaryName;
	unsigned int YearOfDiscovery;
	short int MonthOfDiscovery, DayOfDiscovery;
	std::string PlaceOfDiscovery;
	std::string reference;
	std::string person;
};

class ZHStudentSolution {
public:
	ZHStudentSolution() {};
	~ZHStudentSolution() {};
	void readPlanet(std::string fileName, std::vector<MinorPlanet> &data);
	void readCity(std::string fileName, std::vector<std::string>& cityData);
	DayOfYear task1(const std::vector<MinorPlanet>& data);
	void prepare2_3_4(const std::vector<MinorPlanet>& data);
	std::string task2();
	std::vector<std::string> task3();
	std::vector<std::string> task4(std::string place);
	std::vector<std::string> task5(const std::vector<MinorPlanet>& data, const std::vector<std::string>& cityData);
	std::vector<int> task6(const std::vector<MinorPlanet>& data);
	/*std::vector<int> task7(const std::vector<MinorPlanet>& data);*/
private:
	std::map<std::string, std::pair< int, std::vector<std::string> > > places;
};

#endif /* ZHSTUDENTSOLUTION_H_ */
