小明維護著乙個程式設計師論壇。現在他收集了乙份"點讚"日誌,日誌共有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
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。
所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。
不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:main,否則按無效**處理。
//尺取法
#include
using namespace std;
const
int maxn =
1e6;
int n,d,k,cnt,ans[maxn+10]
;vector<
int> vec[maxn+10]
;int
judge
(int x)
sort
(vec[x]
.begin()
,vec[x]
.end()
);int l=
0,r=
0,sum=0;
while
(l<=r&&r<=len-1)
else
} r++;}
return0;
}int
main()
cnt =0;
for(
int i=
1;i<=maxn;i++)}
sort
(ans+
1,ans+
1+cnt)
;for
(int i=
1;i<=cnt;i++
)return0;
}
藍橋杯 日誌統計
尺取法 vector容器 全域性變數能開更大的空間哦 題目小明維護著乙個程式設計師論壇。現在他收集了乙份 點讚 日誌,日誌共有n行。其中每一行的格式是 ts id 表示在ts時刻編號id的帖子收到乙個 贊 現在小明想統計有哪些帖子曾經是 熱帖 如果乙個帖子曾在任意乙個長度為d的時間段內收到不少於k個...
日誌統計(藍橋杯)
藍橋杯的一道題 思路 先說最容易想到的,把ts都放到他的id下,列舉每個id,在每個id之下判斷是否存在熱帖,存在的條件就是在 t,t d 中cnt k code ac 6 10 include include includeusing namespace std vectora 100005 se...
藍橋杯 日誌統計
現在小明想統計有哪些帖子曾經是 熱帖 如果乙個帖子曾在任意乙個長度為d的時間段內收到不少於k個讚,小明就認為這個帖子曾是 熱帖 具體來說,如果存在某個時刻t滿足該帖在 t,t d 這段時間內 注意是左閉右開區間 收到不少於k個讚,該帖就曾是 熱帖 給定日誌,請你幫助小明統計出所有曾是 熱帖 的帖子編...