Dãy con liên tục khác biệt


Submit solution

Points: 3
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Cho dãy \(n\) phần tử \(a_1,a_2,...a_n\) tìm một dãy con liên tục nhiều phần tử nhất có thể sao cho trong dãy con đó không có bất kỳ 2 phần tử nào bằng nhau

Input

Dòng đầu gồm \(n\) là số phần tử của dãy \((1 \le n \le 1000)\)

Dòng cuối chứa \(n\) số nguyên không âm có giá trị không vượt quá 32767

Output

Một số tự nhiên duy nhất là độ dài của dãy con liên tục dài nhất thoải mãn không có cặp \(2\) phần tử bất kỳ nào bằng nhau

Ví dụ

Input

12
4 7 2 8 4 8 3 2 4 9 3 6

Output

5

Giải thích có hai dãy con liên tục có 5 số liên tiếp thỏa mãn như \(8, 3, 2, 4, 9\) hoặc \(2, 4, 9, 3, 6\)

tichpx

Comments


  • -2
    Nguyễn_Xuân_Lộc  commented on April 12, 2024, 12:11 a.m.
    // C++ code to implement the approach
    
    #include <bits/stdc++.h>
    using namespace std;
    
    // Function to find the maximum sum
    int rec(vector<int>& nums, int idx)
    {
        if (idx >= nums.size())
            return 0;
        return max(nums[idx] + rec(nums, idx + 2),
                rec(nums, idx + 1));
    }
    
    int findMaxSum(vector<int> arr, int N)
    {
        return rec(arr, 0);
    }
    
    // Driver Code
    int main()
    {
        // Creating the array
        vector<int> arr = { 5, 5, 10, 100, 10, 5 };
        int N = arr.size();
    
        // Function call
        cout << findMaxSum(arr, N) << endl;
        return 0;
    }

  • 0
    N_K  commented on Dec. 19, 2023, 1:56 p.m.

    if __name__ == '__main__':