int main(){
	int a[]={10,12,16};
	int f[]={34,8,50};
	int n=sizeof(a)/sizeof(a[0]);
	printf("\nResult is:%d",findOptimal(a,f,n));
	printf("\n");
	return 0;
}
void DetermineOptimalSumOfFun::calculate(Money *fee_result, Fun *fun_result) {
//  printParties(vec_parties_.at(0));
//  printTable();
  fillTable();
//  printTable();

  Money fee = findOptimal();
  *fee_result = fee;
  *fun_result = vec_fun_.at(fee);
}
ResearchPeriod::ResearchPeriod(const string & document) :document(document)
{
	string line;
	ifstream myfile(document);
	if (myfile.fail())
		cerr << "File can not be read!" << endl;
	else if (myfile.is_open()) {
		getline(myfile, line);
		vector<int> timeLine = getTimeLine(line);
		reasearchStartTime = timeLine[0];
		researchEndTime = timeLine[1];
		getline(myfile, line);
		numOfProjects = atoi(line.c_str());
		while (getline(myfile, line)) {
			projects.push_back(getProject(line));
		}
		projects = sortProjectsFinishTime(projects);
		myfile.close();
	}
	optimalProjects = findOptimal();
	optimalProjects = sortProjectCost(optimalProjects);
	partitionProjects();
}