description
三個農民每天清晨5點起床,然後去牛棚給3頭牛**。第乙個農民在300時刻(從5點開始計時,秒為單位)給他的牛**,一直到1000時刻。第二個農民在700時刻開始,在 1200時刻結束。第三個農民在1500時刻開始2100時刻結束。期間最長的至少有乙個農民在**的連續時間為900秒(從300時刻到1200時刻),而最長的無人**的連續時間(從**開始一直到**結束)為300時刻(從1200時刻到1500時刻)。 你的任務是編乙個程式,讀入乙個有n個農民(1 <= n <= 5000)擠n頭牛的工作時間列表,計算以下兩點(均以秒為單位): 最長至少有一人在**的時間段。 最長的無人**的時間段。(從有人**開始算起)
input
line 1: 乙個整數n。 lines 2…n+1: 每行兩個小於1000000的非負整數,表示乙個農民的開始時刻與結束時刻。
output
一行,兩個整數,即題目所要求的兩個答案。
sample input
3300 1000
700 1200
1500 2100
sample output
900 300
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef
long
long ll;
const
int maxn=
1e5;
const ll _inf =
-8e18
;//const int n = 1e5 + 10;
intcmp
(int a,
int b)
intmain()
for(
int i=
1; i<=n; i++
) anybody[i]
=begin[i]
-end[i-1]
;sort
(someone,someone+n+
1,cmp)
;sort
(anybody,anybody+n+
1,cmp);if
(anybody[n]
<0)
anybody[n]=0
; cout<<<
" "<
}
日常訓練 壓縮
巨大的文字往往令人頭疼,特別是文字內容有大量重複的情況下,巨大的文字不便於運輸和閱讀,於是我們提出了noip nonsense obivous index pattern 荒謬的顯然索引法 一種 有效的 壓縮文字的方法。noip壓縮後的格式很特別,乙個文字壓縮後由若干個單元組成,每個單元由3部分組成...
日常訓練 Tree
j 對於h u j 時間複雜度的證明也是比較經典了,每次列舉的是sz eu s zev 相當於每次從a,b 中各任選一點,它們的lc a 為 u 這樣的點對列舉不會重複,因此總的時間複雜度為o n2 include include include include include using name...
日常訓練 mod
給定 p 1,p 2,p n,b 1,b 2,b m 求滿足 x mod p 1 equiv a 1,x mod p 2 equiv a 2,x mod p n equiv a n 的 x 對 b 1,b 2,b m 取模的結果.第一行兩個整數 n,m 接下來 n 行,每行有乙個整數 a i 接下來...