QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#447061#8780. Training, Round 2ucup-team3702Compile Error//C++231.5kb2024-06-17 20:53:022024-06-17 20:53:05

Judging History

你现在查看的是最新测评结果

  • [2024-06-17 20:53:05]
  • 评测
  • [2024-06-17 20:53:02]
  • 提交

answer

#include <bits/stdc++.h>
#include<bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;

const int N = 5e3 + 5;

int n, a, b, f[N][N], ans;
tree <int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> S1[N], S2[N];
std::vector<std::pair<int, int>> upd;

int main () {
    std::cin >> n >> a >> b;
    f[0][0] = 1;
    for (int i = 0; i <= n; i++)
        for (int j = 0; j <= n; j++)
            if (i or j) S1[i].insert(j);
            else S2[i].insert(j);
    for (int al, ar, bl, br, p = 1; p <= n; p++) {
        std::cin >> al >> ar >> bl >> br;
        upd.clear();
        for (int i = std::max(0, al - a); i <= std::min(p, ar - a); i++) {
            auto l = S2[i].lower_bound(std::max(0, bl - b));
            if (l != S2[i].end()) {
                auto r = S2[i].upper_bound(std::min(p, br - b));
                for (auto it = l; it != r; it++) {
                    if (S1[i + 1].find(*it) != S1[i + 1].end())
                        f[i + 1][*it] = 1, S1[i + 1].erase(*it),
                        upd.push_back(std::make_pair(i + 1, *it));
                    if (S1[i].find((*it) + 1) != S1[i].end())
                        f[i][(*it) + 1] = 1, S1[i].erase((*it) + 1),
                        upd.push_back(std::make_pair(i, (*it) + 1));
                }
                S2[i].erase(l, r);
            }
        }
        for (auto x : upd)
            S2[x.first].insert(x.second),
            ans = std::max(ans, x.first + x.second);
    }
    std::cout << ans << "\n";
    return 0;
}

Details

answer.code: In function ‘int main()’:
answer.code:34:28: error: no matching function for call to ‘__gnu_pbds::tree<int, __gnu_pbds::null_type, std::less<int>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>::erase(__gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<int, long unsigned int, std::allocator<char> >*, int, int*, const int*, int&, const int&, true, std::allocator<char> >&, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<int, long unsigned int, std::allocator<char> >*, int, int*, const int*, int&, const int&, true, std::allocator<char> >&)’
   34 |                 S2[i].erase(l, r);
      |                 ~~~~~~~~~~~^~~~~~
In file included from /usr/include/c++/13/ext/pb_ds/detail/container_base_dispatch.hpp:85,
                 from /usr/include/c++/13/ext/pb_ds/assoc_container.hpp:48,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/extc++.h:74,
                 from answer.code:2:
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp:45:1: note: candidate: ‘bool __gnu_pbds::detail::rb_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::erase(key_const_reference) [with Key = int; Mapped = __gnu_pbds::null_type; Cmp_Fn = std::less<int>; Node_And_It_Traits = __gnu_pbds::detail::tree_traits<int, __gnu_pbds::null_type, std::less<int>, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >; _Alloc = std::allocator<char>; key_const_reference = const int&]’
   45 | PB_DS_CLASS_C_DEC::
      | ^
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp:45:1: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp:57:1: note: candidate: ‘__gnu_pbds::detail::rb_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::iterator __gnu_pbds::detail::rb_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::erase(iterator) [with Key = int; Mapped = __gnu_pbds::null_type; Cmp_Fn = std::less<int>; Node_And_It_Traits = __gnu_pbds::detail::tree_traits<int, __gnu_pbds::null_type, std::less<int>, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >; _Alloc = std::allocator<char>; iterator = __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<int, long unsigned int, std::allocator<char> >*, int, int*, const int*, int&, const int&, true, std::allocator<char> >]’
   57 | PB_DS_CLASS_C_DEC::
      | ^
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp:57:1: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp:73:1: note: candidate: ‘__gnu_pbds::detail::rb_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::reverse_iterator __gnu_pbds::detail::rb_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::erase(reverse_iterator) [with Key = int; Mapped = __gnu_pbds::null_type; Cmp_Fn = std::less<int>; Node_And_It_Traits = __gnu_pbds::detail::tree_traits<int, __gnu_pbds::null_type, std::less<int>, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >; _Alloc = std::allocator<char>; reverse_iterator = __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<int, long unsigned int, std::allocator<char> >*, int, int*, const int*, int&, const int&, false, std::allocator<char> >]’
   73 | PB_DS_CLASS_C_DEC::
      | ^
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp:73:1: note:   candidate expects 1 argument, 2 provided