高橋和低橋

2021-06-26 01:18:12 字數 1110 閱讀 1667

problem description

有個腦筋急轉彎是這樣的:有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是:因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算「淹了兩次」。舉例說明:

假定高橋和低橋的高度分別是 5 和 2,初始水位為 1

第一次洪水:水位提高到 6(兩個橋都被淹),退到 2(高橋不再被淹,但低橋仍然被淹)

第二次洪水:水位提高到 8(高橋又被淹了),退到 3。

沒錯,文字遊戲。關鍵在於「又」的含義。如果某次洪水退去之後一座橋仍然被淹(即水位不小於橋的高度),那麼下次洪水來臨水位提高時不能算「又」淹一次。

輸入 n 座橋的高度以及第 i 次洪水的漲水水位 ai 和退水水位 bi,統計有多少座橋至少被淹了 k 次。初始水位為 1,且每次洪水的漲水水位一定大於上次洪水的退水水位。

input

輸入檔案最多包含 25 組測試資料。每組資料第一行為三個整數 n, m, k(1<=n,m,k<=10^5)。第二行為 n 個整數 hi(2<=hi<=10^8),即各個橋的高度。以下 m 行每行包含兩個整數 ai 和 bi(1<=bibi-1)。輸入檔案不超過 5mb。

output

對於每組資料,輸出至少被淹 k 次的橋的個數。

sample input

2 2 2

2 56 2

8 35 3 2

2 3 4 5 6

5 34 2

5 2sample output

case 1: 1

case 2: 3

#include#include#include#includeusing namespace std;

#define max 100010

int m,n,k;

int tree[max],d[max],maxn;

struct node

nd[3*max];

bool cmp(node a,node b)

for(i=0;i=k) sum++;

printf("case %d: %d\n",++cas,sum);

} return 0;

}

1668 高橋和低橋

time limit 1 sec memory limit 128 mb submit 42 solved 25 submit status web board 有個腦筋急轉彎是這樣的 有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是 因為低橋太低了,第一次...

文章標題 高橋和低橋

有個腦筋急轉彎是這樣的 有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是 因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算 淹了兩次 舉例說明 假定高橋和低橋的高度分別是5和2,初始水位為1 第一次洪水 水位提高到6 兩個橋都被淹 退到2 高橋...

csu 1335 高橋和低橋

description 有個腦筋急轉彎是這樣的 有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是 因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算 淹了兩次 舉例說明 假定高橋和低橋的高度分別是5和2,初始水位為1 第一次洪水 水位提高到6 兩...