2023年藍橋杯B組c c 第八題詳解

2021-09-30 17:01:07 字數 1490 閱讀 9957

小明維護著乙個程式設計師論壇。現在他收集了乙份"點讚"日誌,日誌共有n行。其中每一行的格式是:

ts id

表示在ts時刻編號id的帖子收到乙個"贊"。

現在小明想統計有哪些帖子曾經是"熱帖"。如果乙個帖子曾在任意乙個長度為d的時間段內收到不少於k個讚,小明就認為這個帖子曾是"熱帖"。

具體來說,如果存在某個時刻t滿足該帖在[t, t+d)這段時間內(注意是左閉右開區間)收到不少於k個讚,該帖就曾是"熱帖"。

給定日誌,請你幫助小明統計出所有曾是"熱帖"的帖子編號。

【輸入格式】

第一行包含三個整數n、d和k。

以下n行每行一條日誌,包含兩個整數ts和id。

對於50%的資料,1 <= k <= n <= 1000

對於100%的資料,1 <= k <= n <= 100000 0 <= ts <= 100000 0 <= id <= 100000

【輸出格式】

按從小到大的順序輸出熱帖id。每個id一行。

【輸入樣例】

7 10 2

0 10 10

10 10

10 1

9 1100 3

100 3

【輸出樣例】13

資源約定:

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別。

#include #include #include #include #define max 100005

using namespace std;

vectorm[max];

int n, d, k;

/*判斷id為i的帖子是否為熱帖,是則返回 true 否則返回 false;

判斷是否為熱帖的方法,對每個帖子對應的所有時間進行排序,

用尺取法找到在 d 時間範圍內的達到 k 個讚的帖子

*/bool judge(int x)

sort(m[x].begin(), m[x].end());

int l = 0; //左

int r = 0; //右

int sum = 0; //尺子長度

while(l <= r && r < len)else

}r++;

}return false;

}int main()

//int index = 0;

for(int i = 0; i < max; i++)

}return 0;

}

2023年藍橋杯C C 組B組第二題

include includeint a 30 int fun1 int num for int j last printf n if getasynckeystate 48 sum if j 29 if go 0 if k 27 a k 0 else if go 1 else if go 2 把剩...

2023年藍橋杯省賽A組第八題 全球變暖

題目 你有一張某海域nxn畫素的 表示海洋 表示陸地,如下所示 其中 上下左右 四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。由於全球變暖導致了海面上公升,科學家 未來幾十年,島嶼邊緣乙個畫素的範圍會被海水淹沒。具體來說如果一塊陸地畫素與海洋相鄰 上下左右四個相鄰畫素中有海洋 它就...

2023年藍橋杯B組c c 第十題詳解

給定n個整數a1,a2,an。請你從中選出k個數,使其乘積最大。請你求出最大的乘積,由於乘積可能超出整型範圍,你只需輸出乘積除以1000000009的餘數。注意,如果x 0,我們定義x除以1000000009的餘數是負 x 除以1000000009的餘數。即 0 0 x 1000000009 第一行...