K. Xor and segments

Codeforces
IDCF10157K
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Дан массив a1, a2, ..., an, каждое ai равняется 0 или 1. Напишите программу, которая умеет выполнять две операции: В первой строке записаны числа n и q (1 ≤ n, q ≤ 250 000). Во второй строке записаны n чисел a1, a2, ..., an, каждое из этих чисел равно 0 или 1. В следующих q строках расположены параметры запросов. В i-й из этих строк записаны параметры i-го запроса — числа ti, li и ri, где ti равно 1 для запроса первого типа (замена чисел в массиве) и 2 для запроса второго типа (нахождение суммы), а li и ri, 1 ≤ li ≤ ri ≤ n есть параметры соответствующего запроса. Для каждого запроса второго типа выведите в отдельной строке единственное число — ответ на соответствующий запрос. ## Входные Данные В первой строке записаны числа n и q (1 ≤ n, q ≤ 250 000).Во второй строке записаны n чисел a1, a2, ..., an, каждое из этих чисел равно 0 или 1.В следующих q строках расположены параметры запросов. В i-й из этих строк записаны параметры i-го запроса — числа ti, li и ri, где ti равно 1 для запроса первого типа (замена чисел в массиве) и 2 для запроса второго типа (нахождение суммы), а li и ri, 1 ≤ li ≤ ri ≤ n есть параметры соответствующего запроса. ## Выходные Данные Для каждого запроса второго типа выведите в отдельной строке единственное число — ответ на соответствующий запрос. ## Пример Входные данные5 100 0 0 0 01 2 42 2 22 1 12 1 22 2 31 3 52 2 22 3 32 2 42 1 5Выходные данные01111111 [samples]
**Definitions** Let $ n, q \in \mathbb{Z} $ with $ 1 \leq n, q \leq 250{,}000 $. Let $ A = (a_1, a_2, \dots, a_n) $ be a binary sequence where $ a_i \in \{0, 1\} $ for all $ i \in \{1, \dots, n\} $. Let $ Q = \{(t_j, l_j, r_j) \mid j \in \{1, \dots, q\}\} $ be a sequence of queries, where for each query: - $ t_j \in \{1, 2\} $: type of operation, - $ l_j, r_j \in \mathbb{Z} $: range bounds with $ 1 \leq l_j \leq r_j \leq n $. **Constraints** 1. $ 1 \leq n, q \leq 250{,}000 $ 2. $ a_i \in \{0, 1\} $ for all $ i \in \{1, \dots, n\} $ 3. $ 1 \leq l_j \leq r_j \leq n $ for all $ j \in \{1, \dots, q\} $ **Objective** For each query $ j \in \{1, \dots, q\} $: - If $ t_j = 1 $: update $ a_i \leftarrow 1 - a_i $ for all $ i \in \{l_j, \dots, r_j\} $. - If $ t_j = 2 $: compute and output $ \sum_{i=l_j}^{r_j} a_i $.
API Response (JSON)
{
  "problem": {
    "name": "K. Xor and segments",
    "description": {
      "content": "Дан массив a1, a2, ..., an, каждое ai равняется 0 или 1. Напишите программу, которая умеет выполнять две операции:  В первой строке записаны числа n и q (1 ≤ n, q ≤ 250 000). Во второй строке записа",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF10157K"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Дан массив a1, a2, ..., an, каждое ai равняется 0 или 1. Напишите программу, которая умеет выполнять две операции: \n\nВ первой строке записаны числа n и q (1 ≤ n, q ≤ 250 000).\n\nВо второй строке записа...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ n, q \\in \\mathbb{Z} $ with $ 1 \\leq n, q \\leq 250{,}000 $.  \nLet $ A = (a_1, a_2, \\dots, a_n) $ be a binary sequence where $ a_i \\in \\{0, 1\\} $ for all $ i \\in \\{1, \\dots, n\\} ...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments