QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#447054#8780. Training, Round 2ucup-team3702Compile Error//C++231.7kb2024-06-17 20:48:402024-06-17 20:48:40

Judging History

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

  • [2024-06-17 20:48:40]
  • 评测
  • [2024-06-17 20:48:40]
  • 提交

answer

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

const int N = 5e3 + 5;

int n, a, b, f[N][N], ans;
__gnu_pbds::tree<std::pair<int, int>, __gnu_pbds::null_type,
                 std::less<std::pair<int, int> >, __gnu_pbds::rb_tree_tag,
                 __gnu_pbds::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:19:38: error: cannot convert ‘int’ to ‘__gnu_pbds::detail::rb_tree_set<std::pair<int, int>, __gnu_pbds::null_type, std::less<std::pair<int, int> >, __gnu_pbds::detail::tree_traits<std::pair<int, int>, __gnu_pbds::null_type, std::less<std::pair<int, int> >, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >, std::allocator<char> >::const_reference’ {aka ‘const std::pair<int, int>&’}
   19 |             if (i or j) S1[i].insert(j);
      |                                      ^
      |                                      |
      |                                      int
In file included from /usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp:235,
                 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 answer.code:2:
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp:46:24: note:   initializing argument 1 of ‘std::pair<typename __gnu_pbds::detail::bin_search_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::point_iterator, bool> __gnu_pbds::detail::rb_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::insert(const_reference) [with Key = std::pair<int, int>; Mapped = __gnu_pbds::null_type; Cmp_Fn = std::less<std::pair<int, int> >; Node_And_It_Traits = __gnu_pbds::detail::tree_traits<std::pair<int, int>, __gnu_pbds::null_type, std::less<std::pair<int, int> >, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >; _Alloc = std::allocator<char>; typename __gnu_pbds::detail::bin_search_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::point_iterator = __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<int, int>, long unsigned int, std::allocator<char> >*, std::pair<int, int>, std::pair<int, int>*, const std::pair<int, int>*, std::pair<int, int>&, const std::pair<int, int>&, true, std::allocator<char> >; const_reference = const std::pair<int, int>&]’
   46 | insert(const_reference r_value)
      |        ~~~~~~~~~~~~~~~~^~~~~~~
answer.code:20:31: error: cannot convert ‘int’ to ‘__gnu_pbds::detail::rb_tree_set<std::pair<int, int>, __gnu_pbds::null_type, std::less<std::pair<int, int> >, __gnu_pbds::detail::tree_traits<std::pair<int, int>, __gnu_pbds::null_type, std::less<std::pair<int, int> >, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >, std::allocator<char> >::const_reference’ {aka ‘const std::pair<int, int>&’}
   20 |             else S2[i].insert(j);
      |                               ^
      |                               |
      |                               int
/usr/include/c++/13/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp:46:24: note:   initializing argument 1 of ‘std::pair<typename __gnu_pbds::detail::bin_search_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::point_iterator, bool> __gnu_pbds::detail::rb_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::insert(const_reference) [with Key = std::pair<int, int>; Mapped = __gnu_pbds::null_type; Cmp_Fn = std::less<std::pair<int, int> >; Node_And_It_Traits = __gnu_pbds::detail::tree_traits<std::pair<int, int>, __gnu_pbds::null_type, std::less<std::pair<int, int> >, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >; _Alloc = std::allocator<char>; typename __gnu_pbds::detail::bin_search_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::point_iterator = __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<int, int>, long unsigned int, std::allocator<char> >*, std::pair<int, int>, std::pair<int, int>*, const std::pair<int, int>*, std::pair<int, int>&, const std::pair<int, int>&, true, std::allocator<char> >; const_reference = const std::pair<int, int>&]’
   46 | insert(const_reference r_value)
      |        ~~~~~~~~~~~~~~~~^~~~~~~
answer.code:25:39: error: no matching function for call to ‘__gnu_pbds::tree<std::pair<int, int>, __gnu_pbds::null_type, std::less<std::pair<int, int> >, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>::lower_bound(const int&)’
   25 |             auto l = S2[i].lower_bound(std::max(0, bl - b));
      |                      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/ext/pb_ds/detail/container_base_dispatch.hpp:84:
/usr/include/c++/13/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp:64:1: note: candidate: ‘__gnu_pbds::detail::bin_search_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::point_iterator __gnu_pbds::detail::bin_search_tree_set<Key, Mapped, Cmp_Fn, Node_And_It_Traits, _Alloc>::lower_bound(key_const_reference) [with Key = std::pair<int, int>; Mapped = __gnu_pbds::null_type; Cmp_Fn = std::less<std::pair<int, int> >; Node_And_It_Trait...