Untitled
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...