美團codeM預賽A輪 倒水

2021-08-03 15:03:51 字數 1307 閱讀 9444

[程式設計題] 倒水

時間限制:1秒

空間限制:32768k

有乙個大水缸,裡面水的溫度為t單位,體積為c公升。另有n杯水(假設每個杯子的容量是無限的),每杯水的溫度為t[i]單位,體積為c[i]公升。

現在要把大水缸的水倒入n杯水中,使得n杯水的溫度相同,請問這可能嗎?並求出可行的最高溫度,保留4位小數。

注意:一杯溫度為t1單位、體積為c1公升的水與另一杯溫度為t2單位、體積為c2公升的水混合後,溫度變為(t1*c1+t2*c2)/(c1+c2),體積變為c1+c2。 

輸入描述:

第一行乙個整數n, 1 ≤ n ≤ 10^5

第二行兩個整數t,c,其中0 ≤ t ≤ 10^4, 0 ≤ c ≤ 10^9

接下來n行每行兩個整數t[i],c[i]

0 ≤ t[i], c[i] ≤ 10^4

輸出描述:

如果非法,輸出「impossible」(不帶引號)否則第一行輸出「possible"(不帶引號),第二行輸出乙個保留4位小數的實數表示答案。

樣例解釋:往第二杯水中倒0.5公升水

往第三杯水中到1公升水

三杯水的溫度都變成了20

輸入例子1:

3

10 2

20 1

25 1

30 1

輸出例子1:

possible

20.0000

————————————————————————————————————

解題思路:若有一杯水溫度大於水缸的水溫一杯水溫小於水缸的水溫則不可能,若都小於水缸的水溫,則先都上公升到最高水杯的水溫,然後繼續上公升,若都大於水缸的水溫,則先下降到最低水杯的水溫

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define ll long long

const int inf = 0x3f3f3f3f;

struct node

p[100005];

double t,c;

int n;

bool ok(double x)

int main()

if(mn>=t)

else

printf("possible\n%.4f\n",l);}}

}return 0;

}

美團codeM預賽A 倒水

倒水 時間限制 1秒 空間限制 32768k 有乙個大水缸,裡面水的溫度為t單位,體積為c公升。另有n杯水 假設每個杯子的容量是無限的 每杯水的溫度為t i 單位,體積為c i 公升。現在要把大水缸的水倒入n杯水中,使得n杯水的溫度相同,請問這可能嗎?並求出可行的最高溫度,保留4位小數。注意 一杯溫...

CodeM美團點評程式設計大賽A輪 C 倒水

程式設計題 倒水 時間限制 1秒 空間限制 32768k 有乙個大水缸,裡面水的溫度為t單位,體積為c公升。另有n杯水 假設每個杯子的容量是無限的 每杯水的溫度為t i 單位,體積為c i 公升。現在要把大水缸的水倒入n杯水中,使得n杯水的溫度相同,請問這可能嗎?並求出可行的最高溫度,保留4位小數。...

CodeM美團點評程式設計大賽A輪 C 倒水

倒水 時間限制 1秒 空間限制 32768k 有乙個大水缸,裡面水的溫度為t單位,體積為c公升。另有n杯水 假設每個杯子的容量是無限的 每杯水的溫度為t i 單位,體積為c i 公升。現在要把大水缸的水倒入n杯水中,使得n杯水的溫度相同,請問這可能嗎?並求出可行的最高溫度,保留4位小數。注意 一杯溫...