제출 #1369130

#제출 시각아이디문제언어결과실행 시간메모리
1369130pcheloveksTeleporter 2 (JOI26_teleporter)C++20
컴파일 에러
0 ms0 KiB
#define _CRT_SECURE_NO_WARNINGS
 
#include <bits/stdc++.h>
 
#define endl '\n'
 
//#pragma GCC optimize("Ofast")
 
using namespace std;
 
using ll = long long;
using ld = long double;
using pii = pair < int, int >;
using pll = pair < ll, ll >;
 
const ll INF = 2e18;
const ll DIM = 100007;
const ll DIMQ = 2007;
const ld PI = 3.1415926535;
const int mod = 998244353;

struct interval {
    ll l, r, c;
};

bool cmp(interval i1, interval i2) {
    if(i1.l != i2.l) return i1.l < i2.l;
    return i1.r < i2.r;
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
 
#ifdef IloveCP
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif  

    int n, m, k;
    cin >> n >> m >> k;

    vector < interval > a(m + 1);
    for(int i = 1; i <= m; i++) {
        cin >> a[i].l >> a[i].r >> a[i].c;
    }


    sort(a.begin(), a.end(), cmp);

    vector < vector < ll > > dp(m + 2, vector < ll >(k + 1, INF));

    set < pii > to;
    ll fullSum = 0;
    for(int i = 1; i <= m; i++) {
        to.insert({a[i].r, i});
        fullSum += (ll)a[i].c;
    }

    int ptr = 0;

    dp[0][0] = 0;
    for(int i = 0; i <= m; i++) {
        while(ptr <= m && a[ptr].l < a[i].r) {
            fullSum -= a[ptr].c;
            to.erase({a[ptr].r, ptr});
            ptr++;
        }

        sort(to.begin(), to.end());

        for(int x = 0; x <= k; x++) {
            if(dp[i][x] >= INF) continue;

            if(x != k) {
                ll cost = 0;
                for(auto it = to.begin(); it != to.end(); it++) {
                    if(x != k) dp[it->second][x + 1] = min(dp[it->second][x + 1], dp[i][x] + cost);
                    cost += a[it->second].c;
                }
            }
            
            dp[m + 1][x] = min(dp[m + 1][x], dp[i][x] + (ll)fullSum);
        }
    }

    ll res = INF;
    for(int i = 0; i <= k; i++) res = min(res, dp[m + 1][i]);

    cout << res << endl;
    

    return 0;
}

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

In file included from /usr/include/c++/13/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from Main.cpp:3:
/usr/include/c++/13/bits/stl_algo.h: In instantiation of 'constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = _Rb_tree_const_iterator<pair<int, int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]':
/usr/include/c++/13/bits/stl_algo.h:4861:18:   required from 'constexpr void std::sort(_RAIter, _RAIter) [with _RAIter = _Rb_tree_const_iterator<pair<int, int> >]'
Main.cpp:71:13:   required from here
/usr/include/c++/13/bits/stl_algo.h:1948:50: error: no match for 'operator-' (operand types are 'std::_Rb_tree_const_iterator<std::pair<int, int> >' and 'std::_Rb_tree_const_iterator<std::pair<int, int> >')
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/13/bits/stl_algobase.h:67,
                 from /usr/include/c++/13/algorithm:60:
/usr/include/c++/13/bits/stl_iterator.h:625:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr decltype ((__y.base() - __x.base())) std::operator-(const reverse_iterator<_IteratorL>&, const reverse_iterator<_IteratorR>&)'
  625 |     operator-(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:625:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::reverse_iterator<_IteratorL>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1800:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr decltype ((__x.base() - __y.base())) std::operator-(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
 1800 |     operator-(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/13/bits/stl_iterator.h:1800:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::move_iterator<_IteratorL>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:166:
/usr/include/c++/13/valarray:1197:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__minus, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__minus, _Tp>::result_type> std::operator-(const typename valarray<_Tp>::value_type&, const valarray<_Tp>&)'
 1197 | _DEFINE_BINARY_OPERATOR(-, __minus)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/valarray:1197:1: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::valarray<_Tp>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/valarray:1197:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__minus, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__minus, _Tp>::result_type> std::operator-(const valarray<_Tp>&, const typename valarray<_Tp>::value_type&)'
 1197 | _DEFINE_BINARY_OPERATOR(-, __minus)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/valarray:1197:1: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::valarray<_Tp>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/valarray:1197:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__minus, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__minus, _Tp>::result_type> std::operator-(const valarray<_Tp>&, const valarray<_Tp>&)'
 1197 | _DEFINE_BINARY_OPERATOR(-, __minus)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/valarray:1197:1: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::valarray<_Tp>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/13/valarray:605:
/usr/include/c++/13/bits/valarray_after.h:406:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__minus, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const valarray<typename _Dom::value_type>&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  406 |     _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__minus, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const _Expr<_Dom1, typename _Dom1::value_type>&, const valarray<typename _Dom::value_type>&)'
  406 |     _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__minus, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const typename _Dom::value_type&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  406 |     _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__minus, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const _Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
  406 |     _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::__minus, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__minus, typename _Dom1::value_type>::result_type> std::operator-(const _Expr<_Dom1, typename _Dom1::value_type>&, const _Expr<_Dom2, typename _Dom2::value_type>&)'
  406 |     _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/valarray_after.h:406:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/13/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:127:
/usr/include/c++/13/complex:460:5: note: candidate: 'template<class _Tp> constexpr std::complex<_Tp> std::operator-(const complex<_Tp>&)'
  460 |     operator-(const complex<_Tp>& __x)
      |     ^~~~~~~~
/usr/include/c++/13/complex:460:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::complex<_Tp>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/complex:383:5: note: candidate: 'template<class _Tp> constexpr std::complex<_Tp> std::operator-(const _Tp&, const complex<_Tp>&)'
  383 |     operator-(const _Tp& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/13/complex:383:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::complex<_Tp>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/complex:374:5: note: candidate: 'template<class _Tp> constexpr std::complex<_Tp> std::operator-(const complex<_Tp>&, const _Tp&)'
  374 |     operator-(const complex<_Tp>& __x, const _Tp& __y)
      |     ^~~~~~~~
/usr/include/c++/13/complex:374:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::complex<_Tp>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~
/usr/include/c++/13/complex:365:5: note: candidate: 'template<class _Tp> constexpr std::complex<_Tp> std::operator-(const complex<_Tp>&, const complex<_Tp>&)'
  365 |     operator-(const complex<_Tp>& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/13/complex:365:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_algo.h:1948:50: note:   'std::_Rb_tree_const_iterator<std::pair<int, int> >' is not derived from 'const std::complex<_Tp>'
 1948 |                                 std::__lg(__last - __first) * 2,
      |                                           ~~~~~~~^~~~~~~~~