Điểm: 200 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Thành phố Berland vừa thu thập được một bảo vật. Bảo vật đó hiện đang được cất giữ trong 1 két sắt, và chỉ có cách mở khóa két sắt thì mới lấy được bảo vật.

Bạn là một tên trộm khét tiếng trong thành phố, và mục tiêu của bạn chính là bảo vật trong két sắt. Tuy nhiên, khả năng của bạn có giới hạn nên chỉ có thể lấy trộm được bảo vật nếu như mật khẩu mở khóa két sắt không khó đoán.

Mật khẩu của két sắt được biểu diễn dưới dạng một dãy \(n\) chữ số, mỗi chữ số có giá tri từ \(0\) đến \(9\).

Mật khẩu được cho là khó đoán, nếu không có 2 vị trí nào cạnh nhau trên dãy số mật mã cùng giá tri và mật khẩu phải chứa tối thiểu 5 chữ số khác nhau.

Bài toán đặt ra cho bạn đó là tìm hiểu xem liệu mật khẩu mở khóa két sắt có khó đoán hay không?

Input

  • Dòng đầu tiên gồm một số nguyên \(N\) - độ dài dãy chữ số của mật khẩu.
  • Dòng tiếp theo gồm \(N\) chữ số - mô tả mật khẩu của két sắt.

Output

  • In ra "1" nếu mật khẩu khó đoán, còn nếu mật khẩu không khó đoán thì in ra "0".

Constraints

  • \(1<N<10^6\)

Example

Test 1

Input
5   
12345 
Output
1

Test 2

Input
6   
122345
Output
0

Test 3

Input
5   
12341
Output
0
Note
  • Trong ví dụ 1, mật khẩu không có 2 vi trí nào cạnh nhau có cùng giá tri, và có 5 chữ số khác nhau : \(1, 2, 3, 4, 5\). Nên mật khẩu sẽ khó đoán.
  • Trong ví dụ 2, tuy mật khẩu có 5 chữ số khác nhau, nhưng ở vi trí \(2\)\(3\), mật khẩu có cùng giá tri là \(2\). Nên mật khẩu không khó đoán.
  • Trong ví dụ 3, tuy mật khẩu không có 2 vi trí nào cạnh nhau có cùng giá tri, nhưng mật khẩu chỉ có 4 chữ số khác nhau. Nên mật khẩu không khó đoán.

Bình luận


  • 13
    TranDucAnhh    2:36 p.m. 6 Tháng 8, 2024 chỉnh sửa 13

    SOLUTION || C++ REFERENCE AC CODE

    Xin các bro chỉ nên tham khảo code của tôi khi quá bí, tôi không khuyến khích hành vi copy code!
    Chúc các bro học tốt < 3, nếu thấy hay cho tôi 1 upvote nhé! Cin camonn :>

    C++
    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        int n; string p;
        cin >> n >> p;
        bool h = true;
        set<char> s;
        for (int i = 0; i < n; ++i) {
            if (i > 0 && p[i] == p[i - 1]) h = false;
            s.insert(p[i]);
        } if (s.size() < 5) h = false;
        cout << (h ? 1 : 0) << endl;
        return 0;
    }
    
    • 1 bình luận nữa