Hua Viet Cong

@congm4a1

Viet Nam, ha hoi

Joined Feb 2017

World Rank: #117351 (0 points)

Institution: ha hoi

1 1130 100 4 30 8 5 10 3 5 30 4 5 20 6 5 0 2 /////////////////////////// 1 <-- T = 1, 5 <-- Số linh kiện chính của máy tính 20 15 17 18 25 <-- giá chợ Trời của 5 thiết bị từ 1 đến 5 tương ứng 4 <-- 4 gói ưu đãi trên mạng 30 3 1 2 5 <-- gói thứ nhất có giá 30, gồm 3 linh kiện 1, 2, 5 25 2 2 3 <-- gói thứ 2 có giá 25, gồm 2 linh kiện 2, 3 35 3 1 3 5 <-- gói thứ 3 có giá 35, gồm 3 linh kiện 1, 3, 5 20 2 3 4 <-- gói thứ 4 có giá 20, gồm 2 linh kiện 3, 4 3 2 4 5 <-- Số lượng anh Kim cần là 3, lần lượt là 2, 4, 5 ////////////////// #include <iostream> using namespace std; struct SALE{ int P; //money int K; //size int B[21]; }; int N, G[21]; int M, L, A[21], C[21]; bool isBuy[21]; //nen mua vat k rieng le ko SALE S[31]; int Answer; void buy(int k, int price){ //check nhanh can if(price >= Answer) return; //check basic if(k > N+M){ for(int i = 0; i < L; i++) if(C[A[i]] == 0) return; //cout << Answer << " " << price << endl; if(Answer > price) Answer = price; return; } if(k <= N){ //khong mua vat k buy(k+1, price); //check vat k co can de mua hay ko if(isBuy[k]){ //mua vat k C[k]++; buy(k+1, price + G[k]); C[k]--; } }else{ //khong mua goi k-N buy(k+1, price); //mua goi k-N for(int i = 0; i < S[k-N].K; i++) C[S[k-N].B[i]]++; buy(k+1, price + S[k-N].P); for(int i = 0; i < S[k-N].K; i++) C[S[k-N].B[i]]--; } } int main(){ int test, T, i, j; //freopen("input.txt", "r", stdin); cin >> test; for(T = 1; T <= test; T++){ cin >> N; for(i = 1; i <= N; i++){ cin >> G[i]; C[i] = -1; isBuy[i] = true; } cin >> M; for(i = 1; i <= M; i++){ cin >> S[i].P >> S[i].K; for(j = 0; j < S[i].K; j++){ cin >> S[i].B[j]; //check gia goi chua vat k nho hon gia mua vat k if(S[i].P < G[S[i].B[j]]){ isBuy[S[i].B[j]] = false; } } } Answer = 0; cin >> L; for(i = 0; i < L; i++){ cin >> A[i]; Answer += G[A[i]]; C[A[i]] = 0; } //bat dau mua tu vat 1 voi price 0 buy(1, 0); cout << "#" << T << " " << Answer << endl; } return 0; } /////////////////////////////// //diep.thinh //Sinh tất cả cách cách sơn N hộp sử dụng 3 màu 1, 2, 3 //Có 3^N cách sơn #include <iostream> using namespace std; int N; int color[10]; //Mảng lưu màu của hộp thứ i ////////////// //In cách sơn// ////////////// void printCom() { for (int i = 0; i < N; i++) cout << color[i] << " "; cout << endl; } /////////////////// //Sinh trường hợp// ////////////////// //Sơn màu cho hộp thứ i void genCom(int i) { if (i == N) //Nếu gán đủ màu cho N hộp thì in { printCom(); return; } //Mỗi 1 hộp có 3 cách sơn màu từ 1-> 3 for (int j = 1; j <= 3; j++) { color[i] = j; genCom(i+1); //Đệ quy - tìm cách sơn màu cho hộp i+1 } } int main(void) { std::ios::sync_with_stdio(false); N = 3; //Sơn 3 hộp //Sinh ra 3^3 = 27 cách sơn genCom(0); return 0; }

Activity over the last year

Effectiveness

 Problems solved
7
 Solutions submitted
200

Problems

List of solved classical problems:

ADDREV
CANTON
NSTEPS
ONP
PRIME1
SAMER08F
TOANDFRO

TODO list of classical problems:

BULK MSUBSTR SBSTR1
HOTELS PRINT TEST