題目 3320: 藍橋杯2025年第十六屆省賽真題-產值調整
時間限制: 2s 內存限制: 192MB 提交: 549 解決: 122
題目描述
偏遠的小鎮上,三兄弟共同經營著一家小型礦業公司 “兄弟礦業”。公司旗下有三座礦山:金礦、銀礦和銅礦,它們的初始產值分別用非負整數 A、B 和 C 表示。這些礦山的產出是小鎮經濟的核心,支撐著三兄弟和許多礦工家庭的生計。?
然而,各礦山的產值波動劇烈,有時金礦收益高而銀礦、銅礦低迷,有時 則相反。這種不穩定性讓公司收入難以預測,也常引發兄弟間的爭執。為了穩定經營,三兄弟設計了一個公平的產值調整策略,每年執行一次,每次調整時, 將根據當前的產值 A、B、C,計算新產值:?
1.金礦新產值 ;
2. 銀礦新產值 ;?
3. 銅礦新產值。?
其中,?? 表示向下取整。例如,?3.7? = 3,?5.2? = 5。?
計算出 A ′、B ′、C ′ 后,同時更新:A 變為 A ′,B 變為 B ′,C 變為 C ′,作為下一年調整的基礎。?
三兄弟認為這個方法能平衡產值波動,于是計劃連續執行 K 次調整。現在,請你幫他們計算,經過 K 次調整后,金礦、銀礦和銅礦的產值分別是多少。
輸入格式
輸入的第一行包含一個整數 T ,表示測試用例的數量。?
接下來的 T 行,每行包含四個整數 A,B,C,K,分別表示金礦、銀礦和銅礦的初始產值,以及需要執行的調整次數。
輸出格式
對于每個測試用例,輸出一行,包含三個整數,表示經過 K 次調整后金礦、銀礦和銅礦的產值,用空格分隔。
樣例輸入復制
2
10 20 30 1
5 5 5 3
樣例輸出復制
25 20 15
5 5 5
提示
【評測用例規模與約定】?
對于 30% 的評測用例,1 ≤ T ≤ 100,1 ≤ A, B,C, K ≤ 105。
對于 100% 的評測用例,1 ≤ T ≤ 105,1 ≤ A, B,C, K ≤ 109。
1.分析
? ? ? ? 過程有點像二分,不超過32次就可以三個全部相同了,加一個判斷提前結束循環。
2.代碼
#include<iostream>
using namespace std;
typedef long long LL;
LL T,A,B,C,K;
int main() {cin >> T;while (T--) {cin >> A>>B>>C>>K;while (K--) {if (A == B && B == C) break;LL a = C + B >> 1;LL b = A + C >> 1;LL c = A + B >> 1;A = a;B = b;C = c;}cout << A << " " << B << " " << C << endl;}return 0;
}