JZジュニアOJ 2292. [NOIPユニバーサルグループ1]間隔

タイトル説明

長さの配列N [1]、[2] ... [N]。含む[L]は、[L + 1] ... [R]区間[L、R]、[K] W小さな位置があれば番号のすべてが区間[K]の範囲内である満たすこと倍数、この間隔は合法であり、RLの値の範囲は、そうでなければ、このセクションでは、正当ではありません。今、小さなWは、どのくらいのすべての合法的な間隔の最大範囲値の値が知りたいのですが、あなたは彼にこれらの区間の左端ポイントを伝える必要があり(最大値に等しい複数の間隔がある場合、あなたは彼にすべての左端ポイントを指示する必要があります) 。
 

エントリー

最初の行番号N、値の数。
スペースで区切られたNの正の整数の第2行を表し、[1]、[2 ] ... [N]。
 

輸出

最初の2つの行番号X、Y、値の間隔の最大数のそれぞれ、および最大値。
いくつかの整数の2行目は、左点の範囲の大きな最大出力値に小さいから、スペースで区切られました。
 

サンプル入力

サンプル入力[1] 
。5 
。4. 3. 6. 6. 9 
 
[2サンプル入力] 
30 
1,515,330,930,271,151,520 10 25 30 15 30 20 1,525,510,207,716,277,287あります
 
 

サンプル出力

[1]サンプル出力
3 1 
2 
 [2]は出力サンプル
1〜13である
。9
 
 

データ範囲の制限

データ満たすN <= 30の30%のために、[I ] <= 50の
、70%のためのデータ、を満たすN <= 3000、[I ] <= 2000
データ満たすN <= 300000の100%、 [I] <= 2000000
1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  の#define MOD十億七
 4  の#defineっ長い長い
 5  のconst  int型 N = 300010 6  INT N。
7  INT [N]。
8  int型ANS1、ANS2。
9つの int型ANS [N]。
10  のint main()の
 11  {
 12      freopenは(" interval.in "" R " 、STDIN)。
13      freopenは(" interval.out "" W " 、STDOUT)。
14      のscanf(" %d個"、&N)
15      のためにint型 i = 1 ; iが<= N; iが++ 16          のscanf(" %dの"、および[I])。
17      のためのint型のk = 1 ; kは<= N k個++ 18      {
 19          のint L、R。
20          のための(L = K、L> = 1 ; l-- 21             もし(1- == 1 || [1 - 1 ]%[K] =!0 22                  ブレーク23          のために(; R <= N R ++ R = K 24              場合(rは== N [R + || 1!]%[K] = 0 25                  ブレーク26          であれば(ANS2 <(R - L))
 27          {
 28              ANS1 = 1 29の              ANS [ANS1] = L。
30              ANS2 = R - L。
31          }
 32          
33         {
 34              であれば(ANS2 ==(R - L))
 35              {
 36                  歳[years1 ++] = L。
37              }
 38          }
 39      }
 40      ソート(年齢+ 1、および+ 1 + years1)。
41      年1 =シングル(年+ 1年+ 1 + 1年) - (年+ 1 );
42      のprintf(" %D%D \ n " 、years1、ANS2)。
43      のためには、int型 i = 1 ; iが= years1を<; I ++44          のprintf(" %dの" 、ANS [I])。
45      リターン 0 ;
46 }

おすすめ

転載: www.cnblogs.com/anbujingying/p/11317259.html