RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 JOI00018

船 (Ship)

설명

イタリアのチェゼナーティコ (Cesenatico) はアドリア海に面した港町であり,運河を持つことで知られている.運河には船が停泊しており,観光地としても知られている.ここで,現実を単純化した次のような状況設定を考えたい.

運河は直線状であり,その片側のみがアドリア海に通じている.また,運河には 1 から N までの番号が付けられた N 隻の船が停泊しており,船 i ( \(1 \le i \le N\) ) はアドリア海から距離 A i 離れたところに停泊している.

ここで,番号が小さい船ほどアドリア海に近いところに停泊している.すなわち, A 1 < A 2 < ... < A N が成立している.

あなたは町で行われる祭りのために船に色を塗ることにした.具体的にはそれぞれの船につき色 1 から色 N までの N 色の中から 1 色を選び,その色で船を塗る.ここで,以下の条件を満たしたい.

どの色 c ( \(1 \le c \le N\) ) についても,色 c で塗られた船の数は 1 隻 ではない .色 c で塗られた船が 存在しなくてもよい ことに注意せよ.

色 c で塗られた船が 2 隻以上ある場合,色 c で塗られた船は等間隔に並んでいる.言い換えると,色 c で塗られた船について,船のアドリア海からの距離を昇順に並べてできる列は等差数列である.

船の見栄えをより良くするために,以下で表される 美しさ を定義する.

同じ色で塗られた相異なる 2 隻の間の距離としてありうる最小値.ここで,船 i と船 j ( \(1 \le i \le N\) , \(1 \le j \le N\) , \(i \ne j\) ) の間の距離を |A i − A j | とする.

船の情報が与えられたとき,条件を満たす船の塗り方が存在するかを判定し,存在する場合は美しさとしてありうる最大値を求めるプログラムを作成せよ.

제약

2 ≦ N ≦ 3 500 .

1 ≦ A i ≦ 10 9 ( \(1 \le i \le N\) ).

A i < A i+1 ( 1 ≦ i ≦ N − 1 ).

入力される値はすべて整数である.

( 8 点) A i = i ( \(1 \le i \le N\) ).

( 11 点) \(N \le 7\) .

( 12 点) \(N \le 100\) .

( 39 点) \(N \le 700\) .

( 30 点) 追加の制約はない.

입력 형식

入力は以下の形式で与えられる.

N

A 1 A 2 A 3 ... A N

출력 형식

条件を満たす船の塗り方が存在しない場合は -1 を出力せよ.存在する場合は美しさとしてありうる最大値を 1 行で出力せよ.

예제 1
입력
2
1 2
출력
1
예제 2
입력
3
1 10 100
출력
-1
예제 3
입력
5
5 6 8 9 11
출력
3
문제 정보

생성자가 기록되지 않았습니다.

출처 JOI 2026 Preliminary 2

평가 및 의견

船 (Ship)

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

船 (Ship)

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8