UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#212068#3816. 元素yangtianming001Compile Error//C++111.1kb2024-10-13 10:55:162024-10-13 12:19:26

answer

#include <iostream>
#include <vector>
#include <unordered_map>
#include <set>
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];
	}
	vector<pair<int, int>> q1(q);
	for (int i = 0; i < q; i++) {
		int l, r;
		cin >> l >> r;
		q1[i] = {l - 1, r - 1};  
	}
	
	for (auto query : q1) {
		int l = query.first, r = query.second;
		unordered_map<int, int> count;
		set<int> a;     
		for (int i = l; i <= r; i++) {
			a.insert(a[i]);
			count[a[i]]++;
		}
		
		int t = a.size();  
		unordered_map<int, int> cnt;    
		int have = 0;                      
		int min_length = r - l + 1;           
		int left = l;
		for (int right = l; right <= r; right++) {
			int elem = a[right];
			cnt[elem]++;
			if (cnt[elem] == count[elem]) {
				have++;
			}
			while (have == t) {
				min_length = min(min_length, right - left + 1);
				int left_elem = a[left];
				cnt[left_elem]--;
				if (cnt[left_elem] < count[left_elem]) {
					have--;
				}
				left++;
			}
		}
		cout << min_length << endl;
	}
	return 0;
}

详细

answer.code: In function 'int main()':
answer.code:26:14: error: no match for 'operator[]' (operand types are 'std::set<int>' and 'int')
    a.insert(a[i]);\x0d
              ^
answer.code:27:11: error: no match for 'operator[]' (operand types are 'std::set<int>' and 'int')
    count[a[i]]++;\x0d
           ^
answer.code:36:16: error: no match for 'operator[]' (operand types are 'std::set<int>' and 'int')
    int elem = a[right];\x0d
                ^
answer.code:43:22: error: no match for 'operator[]' (...