ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#212164 | #3816. 元素 | Aaron | Compile Error | / | / | C++11 | 1.3kb | 2024-10-13 11:44:32 | 2024-10-13 12:28:54 |
answer
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, q;
cin >> n >> q;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
while (q--) {
int l, r;
cin >> l >> r;
l--; r--;
unordered_set<int> t;
for (int i = l; i <= r; ++i) {
t.insert(a[i]);
}
int minn = numeric_limits<int>::max();
unordered_map<int, int> cnt;
int ans = 0;
int left = 0;
for (int right = 0; right < n; ++right) {
if (t.find(a[right]) != t.end()) {
if (cnt[a[right]] == 0) {
ans++;
}
cnt[a[right]]++;
}
while (ans == t.size()) {
minn = minn(minn, right - left + 1);
if (t.find(a[left]) != t.end()) {
cnt[a[left]]--;
if (cnt[a[left]] == 0) {
ans--;
}
}
left++;
}
}
if (minn == numeric_limits<int>::max()) {
cout << -1 << endl;
} else {
cout << minn << endl;
}
}
return 0;
}
详细
answer.code: In function 'int main()': answer.code:37:51: error: 'minn' cannot be used as a function minn = minn(minn, right - left + 1);\x0d ^