Untitled
unknown
plain_text
2 years ago
1.2 kB
13
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...