#include #include // queue #include #include #include #include using namespace std; const string duomenys = "duom.txt"; void readFromFile(int& n1, int& n3, int& n5, int& visoL, int& isld, int& k1, int& k3, int& k5) { ifstream d(duomenys); d >> n1 >> n3 >> n5 >> visoL; d.ignore(); d >> isld >> k1 >> k3 >> k5; d.close(); } void calculate(int n1, int n3, int n5, int visoL, int& n1k, int& n3k, int& n5k, int& likoVisoL) { likoVisoL = visoL; while (n5 > 0 && likoVisoL >= 0 && likoVisoL - 5 >=0) { likoVisoL -= 5; n5--; n5k++; } while (n3 > 0 && likoVisoL >= 0 && likoVisoL - 3 >= 0) { likoVisoL -= 3; n3--; n3k++; } while (n1 > 0 && likoVisoL >= 0 && likoVisoL - 1 >= 0) { likoVisoL -= 1; n1--; n1k++; } } void kiekPapildomai(int likoVisoL, int& n1r, int& n5r, int& n3r, int& pelnas, int n1k, int n3k, int n5k,int k1, int k3, int k5, int isld) { int t = likoVisoL; while (t-5 >= 0) { t -= 5; n5r++; } while (t - 3 >= 0) { t -= 3; n3r++; } while (t - 1 >= 0) { t -= 1; n1r++; } pelnas = ((n5r + n5k)*k5 + (n3r+n3k)*k3 + (n1r + n1k)*k1) - isld; } void spausdinti(int n1, int n3, int n5, int visoL, int n1k, int n3k, int n5k, int likoVisoL, int n1r, int n3r, int n5r, int pelnas) { ofstream pr("rezultatas.txt"); cout << n1k << " " << n3k << " " << n5k << " " << likoVisoL << endl; cout << n1 - n1k << " " << n3 - n3k << " " << n5 - n5k << endl; cout << n1r << " " << n3r << " " << n5r << endl; cout << pelnas << endl; pr.close(); } int main() { int n1 = 0, n3 = 0, n5 = 0, visoL = 0, n1k = 0, n3k = 0, n5k = 0, likoVisoL = 0, n1r = 0, n3r = 0, n5r = 0, pelnas = 0, isld = 0, k1 = 0, k3 = 0, k5 = 0; readFromFile(n1, n3, n5, visoL, isld, k1, k3, k5); calculate(n1, n3, n5, visoL, n1k,n3k,n5k, likoVisoL); kiekPapildomai(likoVisoL, n1r, n5r, n3r, pelnas,n1k,n3k,n5k,k1,k3,k5,isld); spausdinti(n1, n3, n5, visoL, n1k, n3k, n5k, likoVisoL, n1r,n3r,n5r,pelnas); }