fork download
  1. #include <iostream>
  2. #include <set>
  3. #include <vector>
  4.  
  5. using namespace std;
  6. int main()
  7. {
  8. int n,k;
  9. cin>>n>>k;
  10. vector<int> cost;
  11. for(int i=0; i<n; i++)
  12. {
  13. int tmp;
  14. cin>>tmp;
  15. cost.push_back(tmp);
  16. }
  17. set<pair<int,int> > m;
  18. vector<int> result;
  19. int tcost =0;
  20. for(int i=0; i<k; i++)
  21. {
  22. m.insert(make_pair(cost[i],i));
  23. }
  24. for(int i=k; i<n; i++)
  25. {
  26.  
  27. m.insert(make_pair(cost[i],i));
  28. auto it = m.end()-1;
  29. pair<int,int> mini = *it;
  30. for(auto it=m.begin(); it!=m.end(); it++)
  31. {
  32. cout<<it->first<<" "<<it->second<<endl;
  33. }
  34. cout<<endl;
  35. m.erase(it;
  36. tcost = tcost+mini.first*(i-mini.second);
  37. result.push_back(mini.second);
  38. }
  39. for(int i=k; i<k+n; i++)
  40. {
  41. pair<int,int> mini = *m.end();
  42. m.erase(mini);
  43. tcost = tcost+mini.first*(i-mini.second);
  44. result.push_back(mini.second);
  45. }
  46. cout<<tcost<<endl;
  47. for(int i=0; i<n; i++)
  48. {
  49. cout<<result[i]<<" ";
  50. }
  51. cout<<endl;
  52. }
Compilation error #stdin compilation error #stdout 0s 16072KB
stdin
5 2
4 2 1 10 2
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:28:20: error: no match for ‘operator-’ (operand types are ‘std::set<std::pair<int, int> >::iterator {aka std::_Rb_tree_const_iterator<std::pair<int, int> >}’ and ‘int’)
   auto it = m.end()-1;
             ~~~~~~~^~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/6/bits/stl_iterator.h:333:5: note: candidate: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)
     operator-(const reverse_iterator<_Iterator>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:333:5: note:   template argument deduction/substitution failed:
prog.cpp:28:21: note:   ‘std::set<std::pair<int, int> >::iterator {aka std::_Rb_tree_const_iterator<std::pair<int, int> >}’ is not derived from ‘const std::reverse_iterator<_Iterator>’
   auto it = m.end()-1;
                     ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/6/bits/stl_iterator.h:387:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__y.base() - __x.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)
     operator-(const reverse_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:387:5: note:   template argument deduction/substitution failed:
prog.cpp:28:21: note:   ‘std::set<std::pair<int, int> >::iterator {aka std::_Rb_tree_const_iterator<std::pair<int, int> >}’ is not derived from ‘const std::reverse_iterator<_Iterator>’
   auto it = m.end()-1;
                     ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/6/bits/stl_iterator.h:1186:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)
     operator-(const move_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:1186:5: note:   template argument deduction/substitution failed:
prog.cpp:28:21: note:   ‘std::set<std::pair<int, int> >::iterator {aka std::_Rb_tree_const_iterator<std::pair<int, int> >}’ is not derived from ‘const std::move_iterator<_IteratorL>’
   auto it = m.end()-1;
                     ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/6/bits/stl_iterator.h:1193:5: note: candidate: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)
     operator-(const move_iterator<_Iterator>& __x,
     ^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:1193:5: note:   template argument deduction/substitution failed:
prog.cpp:28:21: note:   ‘std::set<std::pair<int, int> >::iterator {aka std::_Rb_tree_const_iterator<std::pair<int, int> >}’ is not derived from ‘const std::move_iterator<_IteratorL>’
   auto it = m.end()-1;
                     ^
In file included from /usr/include/c++/6/vector:65:0,
                 from prog.cpp:3:
/usr/include/c++/6/bits/stl_bvector.h:208:3: note: candidate: std::ptrdiff_t std::operator-(const std::_Bit_iterator_base&, const std::_Bit_iterator_base&)
   operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y)
   ^~~~~~~~
/usr/include/c++/6/bits/stl_bvector.h:208:3: note:   no known conversion for argument 1 from ‘std::set<std::pair<int, int> >::iterator {aka std::_Rb_tree_const_iterator<std::pair<int, int> >}’ to ‘const std::_Bit_iterator_base&’
prog.cpp:35:13: error: expected ‘)’ before ‘;’ token
   m.erase(it;
             ^
stdout
Standard output is empty