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

2021-08-04 16:00:11 字數 1320 閱讀 5399

倒水

時間限制: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

輸入例子:

3

10 2

20 1

25 1

30 1

輸出例子:

possible

20.0000

作為一名蒟蒻,我果斷寫了比較簡單的方法:

首先,判斷最大溫度值與最小溫度值是否在大水缸中水的溫度值上下(因為只能由大水缸向杯子內倒水)

然後將n>=maxn和minn>=n分開來判斷

①: n>=maxn

如果所有的水都倒在一起的溫度都無法達到maxn的值,那麼肯定是不可能實現的,否則就輸出所有水倒在一起時的溫度

②:minn>=n

如果所有的水都倒在一起的溫度還比minn的值大,那麼這也是無法實現的,否則就輸出minn

當然,還有各種dalao們寫的二分(%%%)

#include

using

namespace

std;

int t;

long

long n,m,x,y,totn,totm,maxn,minn;

double ans;

int readln()

int main()

if (maxn>n&&n>minn)

if (n>=maxn)

else

}if (n<=minn)

else

}}

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

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

2018美團CodeM程式設計大賽初賽B輪 A題開關燈

美團的辦公室一共有n層,每層有m個會議室,可以看成是乙個n m的網格圖。工程師們每天的工作需要協作的地方很多,經常要到會議室開會解決各種問題。公司是提倡勤儉節約的,因此每次會議室只在使用時才開燈。當乙個工程師進入會議室時,假設沒有其他人,他會把燈開啟。當乙個工程師離開會議室時,假設沒有其他人,他會把...

CodeM 2017美團點評程式設計大賽資格賽

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 美團外賣的品牌代言人袋鼠先生最近正在進行 研究。他有兩段音訊,每段音訊是乙個表示音高的序列。現在袋鼠先生想要在第二段音訊中找出與第一段音訊最相近的部分。具體地說,就是在第二段音訊中找到乙個長度和第一段音訊相等且是連續的子...