제출 #1306451

#제출 시각아이디문제언어결과실행 시간메모리
1306451baodatArranging Shoes (IOI19_shoes)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define FOR(i, l, r) for(int i = l; i <= r; i++) #define FORD(i, l, r) for(int i = l; i >= r; i--) #define all(x) (x).begin(), (x).end() struct BIT{ int n; vector<int> bit; BIT(int __n = 0){ init(__n); } void init(int __n = 0){ n = __n; bit.assign(n + 5, 0); } void update(int i, int v){ ++i; while(i <= n){ bit[i] += v; i += i &-i; } } int query(int i){ ++i; int ans = 0; while(i > 0){ ans += bit[i]; i -= i &-i; } return ans; } int query(int l, int r){ return query(r) - query(l - 1); } }; ll count_swaps(vector<int> a){ int m = a.size(); int maxi = 0; for (int x : a) maxi = max(maxi, abs(x)); vector<int> last(maxi + 1, -1); vector<int> match(m, -1); for (int i = 0; i < m; ++i) { int x = abs(a[i]); if (last[x] == -1) last[x] = i; else { match[i] = last[x]; match[last[x]] = i; } } BIT bit(m); FOR(i, 0, m - 1)bit.add(i, 1); vector<char> used(m, 0); ll ans = 0; for (int i = 0; i < m; ++i) { if (used[i]) continue; int j = match[i]; if (j == -1) continue; if (i > j) continue; ans += bit.range(i + 1, j - 1); if (a[i] > 0) ++ans; used[i] = used[j] = 1; bit.add(i, -1); bit.add(j, -1); } return ans; }

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:54:23: error: 'struct BIT' has no member named 'add'
   54 |   FOR(i, 0, m - 1)bit.add(i, 1);
      |                       ^~~
shoes.cpp:64:16: error: 'struct BIT' has no member named 'range'
   64 |     ans += bit.range(i + 1, j - 1);
      |                ^~~~~
shoes.cpp:67:9: error: 'struct BIT' has no member named 'add'
   67 |     bit.add(i, -1);
      |         ^~~
shoes.cpp:68:9: error: 'struct BIT' has no member named 'add'
   68 |     bit.add(j, -1);
      |         ^~~