Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C#] C# LINQ7 - Aggregate seed tìm số chiếm đa số (Boyer-Moore)

    Đọc n và n số nguyên. Dùng Aggregate với seed tuple (candidate: 0, count: 0) để thực hiện thuật toán Boyer-Moore majority: nếu count = 0 chọn candidate mới = x với count = 1; ngược lại nếu x == candidate thì count++, còn lại count--. Sau khi quét xong, đếm lại để xác minh candidate xuất hiện > n/2 lần; nếu có in candidate, nếu không in -1.

    • Định dạng đầu vào:

      Dòng 1: n. Dòng 2: n số nguyên.

    • Ràng buộc đầu vào:

      1 <= n <= 10^5; |a_i| <= 10^6.

    • Định dạng đầu ra:

      Số chiếm đa số hoặc -1.

    Ví dụ:

    Đầu vào:

    7
    3 3 4 2 3 3 3
    

    Đầu ra:

    3

    Giải thích:

    3 xuất hiện 5 lần > 7/2.

    Đang tải editor...