Untitled

 avatar
unknown
plain_text
2 years ago
1.2 kB
4
Indexable
#include<iostream>

using namespace std;

#define N 5 // number style run of Hugo

#define INF 999999999

typedef struct
{
	int time; // tinh theo sec
	int	energy;
}style_run_t;

style_run_t mapRun[6];

int eHugo, dHugo;
bool isWin;

void input()
{
	cin>>eHugo>>dHugo;

	int tmpMin, tmpSec, tmpEnergy, tmpTotalTime;
	for(int i = 0; i < N; i++)
	{
		cin>>tmpMin>>tmpSec>>tmpEnergy;
		tmpTotalTime = tmpMin*60 + tmpSec;

		mapRun[i].time = tmpTotalTime;
		mapRun[i].energy = tmpEnergy;
	}
}

int minTime;

void backTrack(int k, int sumTime,int sumEnergy, int v)
{
	if(sumEnergy > eHugo)	return;
	if(sumTime > minTime)	return;
	if(k == dHugo)
	{
		if(sumTime < minTime)	minTime = sumTime;
		return;
	}

	for(int i = v; i < 5; i++)
	{
		backTrack(k + 1, sumTime + mapRun[i].time, sumEnergy + mapRun[i].energy,i);
	}
}



int main()
{
	freopen("Text.txt", "r", stdin);
	int T;
	cin>>T;
	for(int tc =1; tc <= T; tc++)
	{
		input();
		minTime = INF;
		backTrack(0,0,0,0);
		cout<<"Case #"<<tc<<endl;
		if(minTime == INF)
		{
			cout<<"-1"<<endl;
		}
		else
		{
		cout<<minTime/60<<" "<< minTime%60<<endl;
		}
	}
	return 0;
}
Editor is loading...