Mô tả bài toán
Ca sĩ có a bài 1 phút, b bài 2 phút, c bài 3 phút. Phân chia vào 2 buổi để chênh lệch thời lượng tối thiểu.
Ví dụ
a=2,b=1,c=3 → Tổng = 2+2+9=13. Buổi 1: 1+1+2+3=7, Buổi 2: 3+3=6 → chênh 1.
Thuật toán
Tổng thời gian = a + 2b + 3c. Chênh lệch tối thiểu = (a + c%2) % 2? Thực ra công thức đơn giản: return (a + c) & 1 (xem code). Giải thích: mỗi bài 3 phút có thể chia thành 1+2, bài 2 phút không đổi, bài 1 phút dùng để cân bằng. Chênh lệch = (a + c%2) % 2? Code trả về (a + c&1).
Code C++
#include <bits/stdc++.h>
using namespace std;
int solve(int a, int b, int c) {
return (a + c) & 1;
}
int main() {
int a=2,b=1,c=3;
cout << solve(a,b,c) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: 2, 1, 3
Output: 1