Решение задачи Илья и запросы с Codeforces

Без пояснения   Просмотров: 179


Лев Илья хочет помочь всем своим друзьям со сдачей экзаменов. Чтобы сдать экзамен по информатике нужно решить следующую задачу.

Даны строка s = s1s2... sn (n — длина строки), состоящая только из символов «.» и «#», и m запросов. Каждый запрос описывается парой целых чисел li, ri (1 ≤ li < ri ≤ n). Ответ на запрос li, ri — это количество таких целых чисел i (li ≤ i < ri), что si = si + 1.

Лев Илья хочет помочь друзьям, но кто же поможет ему. Помогите Льву Илье, решите задачу.

Код

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
 
int main() {
 
    std::string s;
 
    std::cin >> s;
 
    int n = s.size();
    std::vector <int> a (n);
    a[0] = 0;
 
    for (int i = 1; i < n; ++i) {
        a[i] = a[i - 1] + (s[i] == s[i - 1]);
    }
 
    /*for (int i = 0; i < n; ++i) {
        std::cout << a[i] << ' ';
    }*/
 
    int m;
 
    std::cin >> m;
 
    int x;
    int y;
 
    for (int i = 0; i < m; ++i) {
        std::cin >> x >> y;
        std::cout << a[y - 1] - a[x - 1] << '\n';
    }
 
    return 0;
 
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться