제출 #1172546

#제출 시각아이디문제언어결과실행 시간메모리
1172546versesrevArranging Shoes (IOI19_shoes)C++20
컴파일 에러
0 ms0 KiB
// 22:48
#include <vector>
#include <unordered_map>
#include <queue>

long long count_swaps(stds::vecotr<int> ss) {
  int n2 = ss.size();
  int n = n2 / 2;
  std::unordered_map<int, std::queue<int>> poss;
  for (int i = 0; i < n2; ++i) {
    poss[ss[i]].push(i);
  }
  
  std::vector<int> tree(n + 1, 0);
  auto update = [&](int pos, int val) {
    ++pos;
    for (; pos <= n; pos += (pos & -pos)) {
      tree[pos] += val;
    }
  };
  auto query = [&](int pos) {
    ++pos;
    int r = 0;
    for (; pos > 0; pos -= (pos & -pos)) {
      r += tree[pos];
    }
    return r;
  };
  auto range_query = [&](int le, int ri) {
    if (ri < le) return 0;
    return query(ri) - query(le - 1);
  };
  
  for (int i = 0; i < n2; ++i) update(i, 1);
  
  long long ans = 0;
  for (int i = 0; i < n2; ++i) {
    if (range_query(i, i) == 0) {
      continue;
    }
    int val = ss[i];
    int val2 = -val;
    int pos = poss[val].front();
    int pos2 = poss[val2].front();
    ans += range_query(pos + 1, pos2 - 1);
    if (val > 0) ans += 1;
    
    update(pos, -1);
    update(pos2, -1);
  }
  return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

shoes.cpp:6:23: error: 'stds' has not been declared
    6 | long long count_swaps(stds::vecotr<int> ss) {
      |                       ^~~~
shoes.cpp:6:36: error: expected primary-expression before 'int'
    6 | long long count_swaps(stds::vecotr<int> ss) {
      |                                    ^~~