Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để tìm sự khác biệt tối thiểu giữa thời lượng buổi hòa nhạc

Giả sử chúng ta có ba số a, b và c. Một ca sĩ có bài hát 'a' dài một phút, bài hát 'b' tow-minutessong và bài hát 'c' dài ba phút. Anh ấy muốn phân phối tất cả các bài hát thành hai buổi hòa nhạc, như vậy mỗi bài hát nên được đưa vào đúng một buổi hòa nhạc. Anh ấy muốn làm cho thời lượng tuyệt đối của các buổi hòa nhạc càng nhỏ càng tốt. Thời lượng của buổi hòa nhạc là tổng thời lượng của tất cả các bài hát trong buổi hòa nhạc đó. Chúng tôi phải tìm ra sự khác biệt tối thiểu có thể có giữa thời lượng các buổi hòa nhạc.

Vì vậy, nếu đầu vào giống như a =2; b =1; c =3, thì đầu ra sẽ là 1, vì anh ta có thể đưa các bài hát dài hai phút và một bài hát hai phút và một bài hát ba phút vào buổi hòa nhạc đầu tiên và hai bài hát dài ba phút vào buổi hòa nhạc thứ hai. Thời lượng của buổi biểu diễn đầu tiên sẽ là 1 + 1 + 2 + 3 =7, thời lượng của buổi biểu diễn thứ hai sẽ là 6. Hiệu số của chúng là | 7 - 6 | =1.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

return (a + (1 if c is odd, otherwise 0))

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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;
}

Đầu vào

2, 1, 3

Đầu ra

1