#include #include #include #include using namespace std; int main() { ifstream infile("matchingseq.in"); ofstream outfile("matchingseq.out"); if (!infile.is_open()) { cout << "Грешка при отварянето на входния файл.\n"; return 1; } if (!outfile.is_open()) { cout << "Грешка при отварянето на изходния файл.\n"; return 1; } int N, Q; infile >> N >> Q; vector hats(N); for (int i = 0; i < N; ++i) { infile >> hats[i]; } vector left(Q), right(Q); for (int i = 0; i < Q; ++i) { infile >> left[i] >> right[i]; } vector maxPairs(Q); // Процес на намиране на максималния брой двойки за всяка заявка for (int i = 0; i < Q; ++i) { int l = left[i], r = right[i]; int maxPairsCount = 0; // Процес на намиране на двойките в интервала [l, r] for (int j = l - 1; j < r - 1; ++j) { if (hats[j] != hats[j + 1]) { maxPairsCount++; j++; // Пропускаме следващата шапка, тъй като тя е вече част от текущата двойка } } maxPairs[i] = maxPairsCount; } // Извеждаме максималния брой двойки за всяка заявка for (int i = 0; i < Q; ++i) { outfile << maxPairs[i] << "\n"; } infile.close(); outfile.close(); return 0; }