Untitled
unknown
plain_text
2 years ago
2.0 kB
4
Indexable
//////////////hugo ve nha #include<iostream> using namespace std; int N; int M[25][2]; int min_sum =1000000; void BT(int k,int b1,int b2,int b3,int summ) { if(summ > min_sum) { return; } if(k == N+1) { if(summ < min_sum) { min_sum = summ; } return; } //th1 :pass BT(k+1,b1,b2,b3,summ + M[k][1]); // th2 : hire BT(k+1,b1 + M[k][0],b2,b3,summ + 2*M[k][1]); /// th3 : battle if(b1 +b2 +b3 >= M[k][0]){ if(b3 >= M[k][0]){ BT(k+1, 0,b1,b2,summ); } else if(b2 +b3 >= M[k][0]){ BT(k+1,0,b1,b2+b3 - M[k][0],summ); } else if(b1+b2+b3 >= M[k][0]){ BT(k+1,0, b1+b2 +b3 -M[k][0],0, summ); } } } int main() { int t; cin >> t; for(int stt=1; stt <=t; stt++) { cin >> N; for(int i=1; i<=N; i++) { cin >> M[i][0] >> M[i][1]; } /////////////////////// BT(1,0,0,0,0); cout << "#" << stt << " " << min_sum << endl; min_sum =1000000; } } ////////////////////////////////hu go thi chay #include<iostream> using namespace std; int M, D; int phut , giay , nl; int A[10][2]; int minn; bool kt; void BT(int k,int time, int sum_nl,int sum_kc) { if(time > minn ) {return ;} if(sum_nl > M) { return;} if(k == 5) { //cout << k << " " << A[k][0] << endl; if(time + (D- sum_kc) * A[k][0] < minn && sum_nl + (D- sum_kc) * A[k][1] <= M) { minn = time + (D- sum_kc) * A[k][0] ; kt =false; } return; } for(int i=0 ; i<= D - sum_kc; i++) { BT(k+1, time + i* A[k][0] , sum_nl + i* A[k][1],sum_kc +i ); } } int main() { //freopen("Text.txt","r",stdin); int t; cin >> t; for(int stt =1; stt <= t; stt ++) { cin >> M >> D; for(int i=1; i<=5; i++) { cin >> phut >> giay >> nl; A[i][0] = phut *60 + giay; A[i][1] = nl; } /////////////////// minn =100000000; kt = true; BT(1,0,0,0); if( !kt){ cout <<"Case #" << stt << endl << minn / 60 << " " << minn % 60 << endl; } else cout << "Case #" << stt << endl << "-1" << endl; } } ///////////////////////
Editor is loading...