#P16123. [USTCPC 2026] Kruskal Loves Strongly Connected Graph

[USTCPC 2026] Kruskal Loves Strongly Connected Graph

题目背景

请注意本题非常规时空限制!

由于评测机性能差异,本题时限调整为0.5s

克露丝卡尔酱喜欢强连通图,她致力于在各种图上探究它们的强连通性。

题目描述

给定一个长度为 nn 的序列 {ai}\{a_i\}

fi=max1j<iaj<ai{fj+1}f_i=\max\limits_{1 \le j<i \land a_j<a_i}\{f_j+1\},特别地,若不存在 1j<i1 \le j<i 满足 aj<aia_j<a_i,则 fi=1f_i=1

u,vu,v 之间存在有向边当且仅当 u<v,au<avu<v,a_u<a_v 且满足 fu+1=fvf_u+1=f_v

克露丝卡尔酱想要添加一些有向边 uvu \rightarrow v,使得添加后得到的新图强连通

请你告诉她最少需要添加的边数并构造方案。

:一张图是强连通的当且仅当对于任意 1u,vn1 \le u,v \le nuuvvvvuu 的路径均存在。

输入格式

第一行一个正整数 nn (1n105)(1 \le n \le 10^5) 表示序列长度。

第二行 nn 个整数,第 ii 个正整数 aia_i (1ai109)(1\le a_i\le 10^9) 表示序列的第 ii 项。

输出格式

第一行输出一个整数 mm,表示最少添加的边数。

接下来 mm 行,每行输出两个以空格分隔的正整数 u,vu,v,表示添加的有向边 uvu \rightarrow v

需要保证 0mn0 \le m \le n 并且 u,v[1,n]u,v \in [1,n]

6
2 1 3 5 4 1
3
6 1
4 2
5 6