답안 #237580

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
237580 2020-06-07T14:06:14 Z tb_03 XORanges (eJOI19_xoranges) C++14
컴파일 오류
0 ms 0 KB
using namespace std;
typedef unsigned int ui;

int n, q;
ui oranges[200005];
ui st_par[400005];
ui st_impar[400005];

void update_par(int index)
{
  st_par[n + index] = oranges[index];

  for (int i = n + index; i > 1; i >>= 1)
    st_par[i >> 1] = st_par[i] ^ st_par[i ^ 1];
}

void update_impar(int index)
{
  st_impar[n + index] = oranges[index];

  for (int i = n + index; i > 1; i >>= 1)
    st_impar[i >> 1] = st_impar[i] ^ st_impar[i ^ 1];
}

ui query_par(int l, int r)
{
  ui res = 0;

  for (l += n, r += n + 1; l < r; l >>= 1, r >>= 1)
  {
    if (l & 1)
      res ^= st_par[l++];

    if (r & 1)
      res ^= st_par[--r];
  }

  return res;
}

ui query_impar(int l, int r)
{
  ui res = 0;

  for (l += n, r += n + 1; l < r; l >>= 1, r >>= 1)
  {
    if (l & 1)
      res ^= st_impar[l++];

    if (r & 1)
      res ^= st_impar[--r];
  }

  return res;
}

int main()
{
  cin >> n >> q;

  for (int i = 0; i < n; i++)
    cin >> oranges[i];

  for (int i = 0; i < n; i++)
    st_par[n + i] = (i % 2 == 0 ? oranges[i] : 0);

  for (int i = n - 1; i > 0; i--)
    st_par[i] = st_par[i << 1] ^ st_par[i << 1 | 1];

  for (int i = 0; i < n; i++)
    st_impar[n + i] = (i % 2 == 0 ? 0 : oranges[i]);

  for (int i = n - 1; i > 0; i--)
    st_impar[i] = st_impar[i << 1] ^ st_impar[i << 1 | 1];

  while (q--)
  {
    int aux;
    cin >> aux;

    if (aux == 1)
    {
      //rescan
      int index;
      cin >> index;
      cin >> oranges[index];

      if (index % 2 == 0)
        update_par(index);
      else
        update_impar(index);
    }
    else
    {
      //query
      int l, u;
      cin >> l >> u;

      if ((u - l + 1) % 2 == 0)
        cout << 0 << '\n';
      else if (l % 2 == 0)
        cout << query_par(l, u) << '\n';
      else
        cout << query_impar(l, u) << '\n';
    }
  }

  cout.flush();
  return 0;
}

Compilation message

xoranges.cpp: In function 'int main()':
xoranges.cpp:59:3: error: 'cin' was not declared in this scope
   cin >> n >> q;
   ^~~
xoranges.cpp:59:3: note: suggested alternative: 'main'
   cin >> n >> q;
   ^~~
   main
xoranges.cpp:100:9: error: 'cout' was not declared in this scope
         cout << 0 << '\n';
         ^~~~
xoranges.cpp:102:9: error: 'cout' was not declared in this scope
         cout << query_par(l, u) << '\n';
         ^~~~
xoranges.cpp:104:9: error: 'cout' was not declared in this scope
         cout << query_impar(l, u) << '\n';
         ^~~~
xoranges.cpp:108:3: error: 'cout' was not declared in this scope
   cout.flush();
   ^~~~