编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#51475 #1280. zxh的均分继承法 Compile Error 0 0 ms 0 K C++ 17 / 453 B q3540555 2021-07-06 15:07:05
显示原始代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
multimap<long double, pair<ll, ll>, greater<long double>> mp;
int main() {
    int n;
    ll num, deno;
    long double k;
    cin >> n;
    while (n--) {
        cin >> num >> deno;
        k = (long double)num / (long double)deno;
        mp.insert(k, { num, deno });
    }
    for (auto p : mp) cout << p.second.first << "/" << p.second.second << endl;
    return 0;
}

编译信息

/sandbox/1/a.cpp: In function 'int main()':
/sandbox/1/a.cpp:13:33: error: no matching function for call to 'std::multimap<long double, std::pair<long long int, long long int>, std::greater<long double> >::insert(long double&, <brace-enclosed initializer list>)'
         mp.insert(k, {num, deno});
                                 ^
In file included from /usr/include/c++/8/map:62,
                 from /usr/include/x86_64-linux-gnu/c++/8/x32/bits/stdc++.h:81,
                 from /sandbox/1/a.cpp:1:
/usr/include/c++/8/bits/stl_multimap.h:537:7: note: candidate: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(const value_type&) [with _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const long double, std::pair<long long int, long long int> >]'
       insert(const value_type& __x)
       ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:537:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/8/bits/stl_multimap.h:544:7: note: candidate: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(std::multimap<_Key, _Tp, _Compare, _Alloc>::value_type&&) [with _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const long double, std::pair<long long int, long long int> >]'
       insert(value_type&& __x)
       ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:544:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/8/bits/stl_multimap.h:551:2: note: candidate: 'template<class _Pair, class> std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >]'
  insert(_Pair&& __x)
  ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:551:2: note:   template argument deduction/substitution failed:
/sandbox/1/a.cpp:13:33: note:   candidate expects 1 argument, 2 provided
         mp.insert(k, {num, deno});
                                 ^
In file included from /usr/include/c++/8/map:62,
                 from /usr/include/x86_64-linux-gnu/c++/8/x32/bits/stdc++.h:81,
                 from /sandbox/1/a.cpp:1:
/usr/include/c++/8/bits/stl_multimap.h:579:7: note: candidate: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(std::multimap<_Key, _Tp, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const long double, std::pair<long long int, long long int> >]'
       insert(const_iterator __position, const value_type& __x)
       ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:579:7: note:   no known conversion for argument 1 from 'long double' to 'std::multimap<long double, std::pair<long long int, long long int>, std::greater<long double> >::const_iterator' {aka 'std::_Rb_tree_const_iterator<std::pair<const long double, std::pair<long long int, long long int> > >'}
/usr/include/c++/8/bits/stl_multimap.h:589:7: note: candidate: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(std::multimap<_Key, _Tp, _Compare, _Alloc>::const_iterator, std::multimap<_Key, _Tp, _Compare, _Alloc>::value_type&&) [with _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const long double, std::pair<long long int, long long int> >]'
       insert(const_iterator __position, value_type&& __x)
       ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:589:7: note:   no known conversion for argument 1 from 'long double' to 'std::multimap<long double, std::pair<long long int, long long int>, std::greater<long double> >::const_iterator' {aka 'std::_Rb_tree_const_iterator<std::pair<const long double, std::pair<long long int, long long int> > >'}
/usr/include/c++/8/bits/stl_multimap.h:596:2: note: candidate: 'template<class _Pair, class> std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(std::multimap<_Key, _Tp, _Compare, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >]'
  insert(const_iterator __position, _Pair&& __x)
  ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:596:2: note:   template argument deduction/substitution failed:
/sandbox/1/a.cpp:13:33: note:   couldn't deduce template parameter '_Pair'
         mp.insert(k, {num, deno});
                                 ^
In file included from /usr/include/c++/8/map:62,
                 from /usr/include/x86_64-linux-gnu/c++/8/x32/bits/stdc++.h:81,
                 from /sandbox/1/a.cpp:1:
/usr/include/c++/8/bits/stl_multimap.h:613:2: note: candidate: 'void std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = long double; _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >]'
  insert(_InputIterator __first, _InputIterator __last)
  ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:613:2: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'long double'
/usr/include/c++/8/bits/stl_multimap.h:625:7: note: candidate: 'void std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >]'
       insert(initializer_list<value_type> __l)
       ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:625:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/8/bits/stl_multimap.h:645:7: note: candidate: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(std::multimap<_Key, _Tp, _Compare, _Alloc>::node_type&&) [with _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::node_type = std::_Node_handle<long double, std::pair<const long double, std::pair<long long int, long long int> >, std::allocator<std::_Rb_tree_node<std::pair<const long double, std::pair<long long int, long long int> > > > >]'
       insert(node_type&& __nh)
       ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:645:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/8/bits/stl_multimap.h:650:7: note: candidate: 'std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator std::multimap<_Key, _Tp, _Compare, _Alloc>::insert(std::multimap<_Key, _Tp, _Compare, _Alloc>::const_iterator, std::multimap<_Key, _Tp, _Compare, _Alloc>::node_type&&) [with _Key = long double; _Tp = std::pair<long long int, long long int>; _Compare = std::greater<long double>; _Alloc = std::allocator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const long double, std::pair<long long int, long long int> > >; std::multimap<_Key, _Tp, _Compare, _Alloc>::node_type = std::_Node_handle<long double, std::pair<const long double, std::pair<long long int, long long int> >, std::allocator<std::_Rb_tree_node<std::pair<const long double, std::pair<long long int, long long int> > > > >]'
       insert(const_iterator __hint, node_type&& __nh)
       ^~~~~~
/usr/include/c++/8/bits/stl_multimap.h:650:7: note:   no known conversion for argument 1 from 'long double' to 'std::multimap<long double, std::pair<long long int, long long int>, std::greater<long double> >::const_iterator' {aka 'std::_Rb_tree_const_iterator<std::pair<const long double, std::pair<long long int, long long int> > >'}