Vị trí tốt
Cho dãy số nguyên \(a_1, a_2, ..., a_n\) (\(1<=n<=100000\)), mỗi số không vượt quá 10000. Dãy số này được viết trên một vòng tròn. Nghĩa là, khi cắt vòng tròn tại vị trí j, ta thu được:
\(a_j,a_{j+1},...,a_n,a_1,a_2, ...,a_{j-1}\)
Vị trí j được gọi là vị trí tốt, nếu các điều kiện sau đây được thỏa mãn:
- \(a_j>0\)
- \(a_j+a_{j+1}>0\)
- ...
- \(a_j+a_{j+1}+...+a_n>0\)
- \(a_j+a_{j+1}+...+a_n+a_1>0\)
- \(a_j+a_{j+1}+...+a_n+a_1+a_2>0\)
- ...
- \(a_j+a_{j+1}+...+a_n+a_1++a_2...+a_{j-1}>0\)
Yêu cầu: hãy đếm số vị trí tốt.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên dương \(n\).
- Dòng thứ hai chứa dãy số \(a_1,a_2,...,a_n\).
Dữ liệu ra
- Dòng đầu tiên ghi kết quả tìm được.
Ví dụ
Input
5
0 1 -2 10 3
Output
2
Giải thích
Là 2 vị trí 4 và 5
Số có các chữ số tăng
Một số nguyên dương \(Q\) được gọi là số tăng nếu có ít nhất hai chữ số và các chữ số tính từ bên trái sang phải luôn tăng.
Cho số nguyên dương \(N\), đếm số lượng các số tăng trong đoạn \(1..N\)
Yêu cầu
Đếm số lượng các số tăng trong đoạn \(1..N\)
Dữ liệu vào
Cho trong tệp văn bản ST1.INP gồm
- Dòng \(1\): Ghi giá trị số \(N\) (\(N < 10^6\))
Dữ liệu ra
Ghi vào tệp văn bản ST1.OUT theo cấu trúc
- Dòng \(1\): In ra số lượng số tăng đếm được.
Sample
Input
20
Output
8
Biến đổi dãy số
Alice là người rất yêu thích các dãy số. Một hôm, Alice chọn ra một dãy số gồm n phần tử. Bây giờ, Alice có thể thay thế một số bất kì trong dãy bằng một số bé hơn nó. Sau một thời gian, Alice lấy số nguyên dương bé nhất không xuất hiện trong dãy, ví dụ dãy 2, 2, 3 thì số Alice lấy được là 1 hay với dãy 1, 3, 4, 5 thì số Alice lấy được là 2. Số lớn nhất mà Alice có thể lấy được sau khi biến đổi dãy ban đầu là bao nhiêu?
Mô tả đầu vào
- Dòng đầu tiên chứa số n.
- Dòng thứ hai chứa n số trong dãy.
Ràng buộc
- 1 ≤ n ≤ 100000. Các số trong dãy là số nguyên dương nhỏ hơn 10000.
Mô tả đầu ra
- In ra kết quả bài toán.
Ví dụ
Input
5
1 3 3 3 6
Output
5
Giải thích
Biến dãy đã cho thành dãy 1,2,3,3,4