WID


Submit solution

Points: 14
Time limit: 1.0s
Memory limit: 512M

Problem type

Tổ chức XYZ là một tổ chức rất lớn, do đó mỗi thành viên tham gia tổ chức được cấp một mã số, không có hai thành viên nào được cấp cùng một mã số.

Hiện tại tổ chức đã có n thành viên, người thứ \(i\) được cấp mã số \(a_i (i=1,2…,n)\). Ban tổ chức nhận thấy rằng nếu các thành viên trong tổ chức có mã số là một dãy số có các giá trị liên tiếp nhau thì việc cấp mã số cho thành viên mới rất dễ dàng, khi đó thành viên mới sẽ được cấp một mã số là số nhỏ nhất trong dãy số trừ đi 1 hoặc số lớn nhất trong dãy số cộng \(1\). Nếu không, ban tổ chức sẽ mất nhiều thời gian để cấp mã số cho thành viên mới. Vì thế ban tổ chức quyết định cấp lại mã số cho \(n\) thành viên.

BHãy giúp ban tổ chức cấp lại mã số cho \(n\) thành viên trong tổ chức sao cho mã số của \(n\) thành viên là một dãy số có các giá trị liên tiếp nhau và số thành viên được cấp lại mã số là ít nhất.

Input

  • Dòng thứ nhất chứa số nguyên \(n (0 ≤ n ≤ 10^5)\);

  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1,a_2,…,a_n (1 ≤ a_i ≤ 10^9,i=1,2,…,n)\).

Các số trên cùng một dòng ghi cách nhau một khoảng trắng.

Mã số được cấp là một số nguyên thuộc [1..10^9]

Output

Gồm một dòng ghi số lượng ít nhất các thành viên cần cấp mã số lại để mã số của \(n\) thành viên là một dãy số có các giá trị liên tiếp nhau.

Sample Input

3 
3 5 10

Sample Output

1

Sample Input

10
20 1 15 17 11 2 3 16 9 14

Sample Output

4

Giải thích:

  • Trong ví dụ 1 cần cấp mã số của người có mã số 10 thành mã số 4.

  • Trong ví dụ 2 cần cấp mã số của người có mã số 1 thành mã số 10; mã số 2 thành mã số 12; mã số 3 thành mã số 13; mã số 20 thành mã số 18.


Comments

There are no comments at the moment.