Nội dung Bài tập
Mã:
RoundDance
Tên:
Round Dance
Dạng thi:
acm
Thang điểm:
1 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Nguồn bài tập:
Codeforces
Được tạo bởi:
4801104016

NẮM VÒNG TAY LỚN

    n bạn vừa đến sự kiện "Nắm vòng tay lớn" của trường để kiếm thêm điểm rèn luyện. Các bạn chia nhau tạo thành các vòng tròn, mỗi vòng tròn được tạo ra sẽ gồm ít nhất 2 người, và khi đó mỗi bạn sẽ nắm tay chính xác hai bạn khác. Nếu vòng tròn chỉ gồm 2 bạn thì hai bạn đó nắm tay nhau.


    Vì đã dư điểm, bạn lười ko đi... nhưng vẫn tò mò muốn biết là các bạn chia làm nhiêu vòng. Sau khi hỏi từng người thì mỗi bạn cho biết chỉ nhớ đúng một người đứng kế mình. Từ dữ liệu đó, bạn hãy xác định rằng tại sự kiện, các bạn tham dự đã chia trong khoảng bao nhiêu vòng (min và max).


    Ví dụ, hôm đó 6 người tham gia, và số báo danh người cạnh mà người được hỏi nhớ được lần lượt là [2,1,4,3,6,5], thì số vòng tối thiểu có thể có là 1:


-> 1-2-3-4-5-6-1


và tối đa là 3:


-> 1-2-1

-> 3-4-3

-> 5-6-5

 

Input:

Dòng đầu là số dương t (1 t 104) - Số lượng testcase.

Với mỗi testcase, dòng đầu là số dương n (2 n 2.105) -- số lượng người tham gia.

Dòng thứ hai chứa n số dương ai (1 t 104, ai i )  -- số báo danh của người kế bên mà bạn thứ i nhớ được.

Đầu vào được đảm bảo rằng tất cả các testcase đều đúng, tức là luôn cách chia các bạn tham gia vào thành vòng.

Cũng đảm bảo rằng tổng các số n của các testcase ko vượt quá 2.105 .

 

Output:

Với mỗi test case, in ra hai số -- số lượng vòng tối thiểu và tối đa có thể có.


Ví dụ:

Input

Output

10

6

2 1 4 3 6 5

6

2 3 1 5 6 4

9

2 3 2 5 6 5 8 9 8

2

2 1

4

4 3 2 1

5

2 3 4 5 1

6

5 3 4 1 1 2

5

3 5 4 1 2

6

6 3 2 5 4 3

6

5 1 4 3 4 2

1 3

2 2

1 3

1 1

1 2

1 1

1 1

2 2

1 2

1 1




    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận