問題の説明
暁明は、これらの日は、このような奇妙で興味深い質問について考えてきました。
どのように多くの偶数1の範囲でNの完全な配列を行うには?ここでは、偶数の範囲の定義がされます:
間隔なら[L、R]の全ての要素(R要素に、すなわち、この構成でL-TH)における「連続」シリーズR-L + 1の長さを取得するために昇順後、この間隔偶数呼ば範囲。
Nは非常に若かったときに、暁明はすぐに答えを計算することができますが、Nが大きくなると、問題はそれほど単純ではありません、今ボブはあなたの助けを必要とするとき。
入力形式
最初の行は、N(1 <= N <= 50000)整数正であり、全体構成の大きさを表します。
2行目は、特定のNデジタル完全な配列を表すN個の異なる数のPI(1 <= Piの<= N)です。
出力フォーマット
出力異なるセクション偶数の数を表す整数。
サンプル入力1
4
3 2 4 1
3 2 4 1
サンプル出力1
7
サンプル入力2
5
2 3 4 5 1
2 3 4 5 1
サンプル出力2
9
参照ラベルは、インターネット検索は、問題への解決策を見つけたかの書き込み...にばらばらのセット...ポジティブまた、溶液2333非常に賢いではないのか分からない、長い時間のようなばらばらのセットです
注目直接暴力はO(n ^ 2)スイープアレイ、[L、R]は連続したシーケンスで構成することができれば、最大間隔マイナス最小間隔はRL、スイープ更新時間に対する回答に等しい場合のみ。
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 int型のn; 長い 長い = ANS 0を。 int型の FA [ 50005 ]; int型 [ 50005 ]; int型のmain() { CINを >> N。 int型私は、jは、 ための式(I = 1 ; I <= N; I ++ ) { scanf関数(" %のD "、および[I])。 } のためには、式(I = 1 ; I <= N; I ++ ) { int型 Mmaxを=0、MMIN = 99999 。 用(J = I; J <= nであり、j ++ ) { Mmaxを = MAX(Mmaxを、[j]を)。 MMIN = 分(MMIN、[J])。 もし(JI == Mmaxの-MMIN)ANS ++ ; } } COUT << ANS。 リターン 0 ; }