#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
int lengthOfLongestSubstring(const vector<int>& arr) {
int n = arr.size();
int maxLength = 0;
vector<int> charIndex(128, -1);
int left = 0;
for (int right = 0; right < n; right++) {
if (charIndex[arr[right]] >= left) {
left = charIndex[arr[right]] + 1;
}
charIndex[arr[right]] = right;
maxLength = max(maxLength, right - left + 1);
}
return maxLength;
}
};
int main() {
Solution sol;
int n;
cin >> n; // Read the length of the array
vector<int> arr(n);
// Read each character into the vector
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int result = sol.lengthOfLongestSubstring(arr);
cout << "Length of longest substring without repeating characters: " << result << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIFNvbHV0aW9uIHsKcHVibGljOgogICAgaW50IGxlbmd0aE9mTG9uZ2VzdFN1YnN0cmluZyhjb25zdCB2ZWN0b3I8aW50PiYgYXJyKSB7CiAgICAgICAgaW50IG4gPSBhcnIuc2l6ZSgpOwogICAgICAgIGludCBtYXhMZW5ndGggPSAwOwogICAgICAgIHZlY3RvcjxpbnQ+IGNoYXJJbmRleCgxMjgsIC0xKTsKICAgICAgICBpbnQgbGVmdCA9IDA7CgogICAgICAgIGZvciAoaW50IHJpZ2h0ID0gMDsgcmlnaHQgPCBuOyByaWdodCsrKSB7CiAgICAgICAgICAgIGlmIChjaGFySW5kZXhbYXJyW3JpZ2h0XV0gPj0gbGVmdCkgewogICAgICAgICAgICAgICAgbGVmdCA9IGNoYXJJbmRleFthcnJbcmlnaHRdXSArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2hhckluZGV4W2FycltyaWdodF1dID0gcmlnaHQ7CiAgICAgICAgICAgIG1heExlbmd0aCA9IG1heChtYXhMZW5ndGgsIHJpZ2h0IC0gbGVmdCArIDEpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG1heExlbmd0aDsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgU29sdXRpb24gc29sOwogICAgaW50IG47CiAgICBjaW4gPj4gbjsgIC8vIFJlYWQgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkKICAgIHZlY3RvcjxpbnQ+IGFycihuKTsKCiAgICAvLyBSZWFkIGVhY2ggY2hhcmFjdGVyIGludG8gdGhlIHZlY3RvcgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYXJyW2ldOwogICAgfQoKICAgIGludCByZXN1bHQgPSBzb2wubGVuZ3RoT2ZMb25nZXN0U3Vic3RyaW5nKGFycik7CiAgICBjb3V0IDw8ICJMZW5ndGggb2YgbG9uZ2VzdCBzdWJzdHJpbmcgd2l0aG91dCByZXBlYXRpbmcgY2hhcmFjdGVyczogIiA8PCByZXN1bHQgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==