#include<iostream>
using namespace std;
void doiTien(int& g, int& s, int& k) {
while (s >= 17 || k >= 29) {
if (s >= 17) {
s -= 17;
g++;
}
else if (k >= 29) {
k -= 29;
s++;
}
}
}
//Tiền còn lại gồm 6 tham số: g,s,k là các đồng tiền. p,q,r là giá tiền tương ứng với các g,s,k
void tienConLai(int& g, int& s, int& k, const int& p, const int& q, const int& r) {
g -= p;
if (s - q < 0) {
s = g * 17 + s - q; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá
g = 0; //Cập nhật <= Vì đổi hết tiền sang s rồi, nên g phải = 0
}
else {
s -= q;
}
if (k - r < 0) {
k = s * 29 + k - r;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá
s = 0; // Cập nhật
}
else {
k -= r;
}
}
int main() {
int g = 5; //Đồng Galeon
int s = 16;// Đồng Sikel
int k = 10;//Đồng Knat
tienConLai(g, s, k, 3, 9, 21);//Trừ tiền món 1
tienConLai(g, s, k, 0, 4, 0);// Trừ tiền món 2
doiTien(g, s, k);//Đổi lại tiền
if (g >= 0 && s >= 0 && k >= 0) {//Kiểm tra xem có cái nào âm không, nếu dương thì xuất tiền
cout << "Tien g: " << g << endl;
cout << "Tien s: " << s << endl;
cout << "Tien k: " << k << endl;
}
else {// Nếu âm thì xuất -1
cout << "-1";
}
return 0;
}