給定乙個長度為 n 的序列 a,a 中的數各不相同。對於 a 中的每乙個數 ai,求:
min 1≤j以及令上式取到最小值的 j(記為 pi)。若最小值點不唯一,則選擇使 aj較小的那個。
輸入格式
第一行輸入整數n,代表序列長度。
第二行輸入n個整數a1…an,代表序列的具體數值,數值之間用空格隔開。
輸出格式
輸出共n-1行,每行輸出兩個整數,數值之間用空格隔開。
分別表示當i取2~n時,對應的min1≤j資料範圍
n≤10 ^5,|ai|≤10 ^9
輸入樣例:
31 5 3
輸出樣例:
4 12 1
#include
#include
using namespace std;
typedef
long
long ll;
typedef pairint> pii;
//數值 和下標
const
int n =
100010
;int n;
int p[n]
, l[n]
, r[n]
;//p[n]第n個點的位置,雙向鍊錶前驅後繼
pii a[n]
, ans[n]
;int
main()
sort
(a +
1, a +
1+ n)
;
a[0]
.first =
1e9, a[n +1]
.first =
-1e9
;//兩個哨兵 不用處理邊界 讓開頭和結尾 不影響結果
for(
int i =
1; i <= n; i++
)//從前往後遍歷陣列,建立鍊錶
for(
int i = n; i >
1; i--);
else ans[i]=;
//左右兩邊相等,選左邊的數
// else ans[i] = ;
r[left]
= right, l[right]
= left;
}for
(int i =
2; i <= n; i++
) cout << ans[i]
.first <<
' '<< ans[i]
.second << endl;
return0;
}
《演算法競賽高階指南》 防曬
有c頭奶牛進行日光浴,第i頭奶牛需要minspf i 到maxspf i 單位強度之間的陽光。每頭奶牛在日光浴前必須塗防曬霜,防曬霜有l種,塗上第i種之後,身體接收到的陽光強度就會穩定為spf i 第i種防曬霜有cover i 瓶。求最多可以滿足多少頭奶牛進行日光浴。輸入格式 第一行輸入整數c和l。...
《演算法競賽高階指南》蚯蚓
蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去請神刀手來幫他們消滅蚯蚓。蛐蛐國裡現在共有 n 只蚯蚓,第 i 只蚯蚓的長度為 ai 所有蚯蚓的長度都是非負整數,即可能存在長度為0的蚯蚓。每一秒,神刀手會在所有的蚯蚓中,準確地找到最長的那乙隻,將其切成兩段。若有多隻最長的,則任...
演算法競賽高階指南筆記
原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 其中,第一位為1是負數 1 0000 0001 原 1 1000 0001 原 因此,8位二進位制數的取值範圍 127,127 補碼正數的補碼是其本身 負數的補碼是在其原碼的基礎上,符號位不變,其餘各位取...