สมมติว่ามีการแข่งขันจำนวน 'a' และจำนวนการแถลงข่าว 'b' ที่จะจัดขึ้นในสนามกีฬาในสัปดาห์หนึ่งๆ มีโรงอาหารสองแห่ง หนึ่งห้องอยู่ในห้องแต่งตัวของผู้เล่น และอีกห้องหนึ่งอยู่ในพื้นที่แถลงข่าว มีตู้กดน้ำอัดลมสองตู้ในโรงอาหาร และต้องเติมให้เต็มต้นสัปดาห์ เครื่องจ่ายเครื่องดื่มสำหรับโรงอาหารในห้องแต่งตัวถูกใช้งานอย่างหนัก และจำเป็นต้องเติมทุกครั้งที่เล่นเกม 'c' และต้องเติมเครื่องจ่ายเครื่องดื่มของโรงอาหารในห้องประชุมทุกครั้งหลังกิจกรรม 'd' ทุกครั้ง คณะกรรมการบำรุงรักษาสนามกีฬาสามารถสั่ง k ชุดเติมเครื่องดื่ม ทุกต้นสัปดาห์ ชุด 'x' สำหรับโรงอาหารในห้องแต่งตัว และ 'y' สำหรับโรงอาหารในห้องประชุม โดยที่ x + y <=k จากตารางการแข่งขัน เราต้องหาค่าของ x และ y และหากต้องการแพ็คเติมมากกว่า k เราพิมพ์ "Limit Exceeded"
ดังนั้น หากอินพุตเป็น a =8, b =8, c =4, d =6, k =9 ผลลัพธ์จะเป็น 2, 2
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
a := (c + a - 1) / c b := (d + b - 1) / d if a + b <= k, then: print(a, b) Otherwise, print("Limit Exceeded")
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h> using namespace std; #define N 100 void solve(int a, int b, int c, int d, int k) { a = (c + a - 1) / c; b = (d + b - 1) / d; if(a + b <= k) cout<<a<<" "<<b<<"\n"; else cout<<"Limit Exceeded."<<"\n"; } int main() { int a = 8, b = 8, c = 4, d = 6, k = 9; solve(a, b, c, d, k); return 0; }
อินพุต
8, 8, 4, 6, 9
ผลลัพธ์
2 2