สมมติว่าเรามีตัวเลขสามตัว a, b และ c นักร้องมีเพลง 'a' หนึ่งนาที 'b' tow-minutessong และ 'c' เพลงสามนาที เขาต้องการแจกจ่ายเพลงทั้งหมดเป็นสองคอนเสิร์ต ดังนั้นทุกเพลงควรรวมอยู่ในคอนเสิร์ตเดียว เขาต้องการทำให้ความแตกต่างของระยะเวลาของคอนเสิร์ตน้อยที่สุดเท่าที่จะเป็นไปได้ ระยะเวลาของคอนเสิร์ตคือผลรวมของระยะเวลาของเพลงทั้งหมดในคอนเสิร์ตนั้น เราต้องหาความแตกต่างระหว่างระยะเวลาของคอนเสิร์ตให้น้อยที่สุด
ดังนั้นหากอินพุตเป็นเหมือน a =2; ข =1; c =3 จากนั้นผลลัพธ์จะเป็น 1 เพราะเขาสามารถรวมเพลงสองเพลงหนึ่งนาทีและเพลงสองนาทีหนึ่งเพลงและเพลงสามนาทีหนึ่งเพลงในคอนเสิร์ตครั้งแรกและเพลงสามนาทีสองเพลงในคอนเสิร์ตที่สอง ระยะเวลาคอนเสิร์ตครั้งแรกจะเป็น 1 + 1 + 2 + 3 =7 ระยะเวลาของคอนเสิร์ตที่สองจะเป็น 6 ความแตกต่างของพวกเขาคือ |7 − 6| =1.
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
return (a + (1 if c is odd, otherwise 0))
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include<bits/stdc++.h> using namespace std; int solve(int a, int b, int c){ return (a+c&1); } int main(){ int a = 2; int b = 1; int c = 3; cout << solve(a, b, c) << endl; }
อินพุต
2, 1, 3
ผลลัพธ์
1