fork download
  1. #include <bits/stdc++.h>
  2. // #include "testlib.h"
  3. using namespace std ;
  4.  
  5. #define ft first
  6. #define sd second
  7. #define pb push_back
  8. #define all(x) x.begin(),x.end()
  9.  
  10. #define ll long long int
  11. #define vi vector<int>
  12. #define vii vector<pair<int,int> >
  13. #define pii pair<int,int>
  14. #define plii pair<pair<ll, int>, int>
  15. #define piii pair<pii, int>
  16. #define viii vector<pair<pii, int> >
  17. #define vl vector<ll>
  18. #define vll vector<pair<ll,ll> >
  19. #define pll pair<ll,ll>
  20. #define pli pair<ll,int>
  21. #define mp make_pair
  22. #define ms(x, v) memset(x, v, sizeof x)
  23.  
  24. #define sc1(x) scanf("%d",&x)
  25. #define sc2(x,y) scanf("%d%d",&x,&y)
  26. #define sc3(x,y,z) scanf("%d%d%d",&x,&y,&z)
  27.  
  28. #define scll1(x) scanf("%lld",&x)
  29. #define scll2(x,y) scanf("%lld%lld",&x,&y)
  30. #define scll3(x,y,z) scanf("%lld%lld%lld",&x,&y,&z)
  31.  
  32. #define pr1(x) printf("%d\n",x)
  33. #define pr2(x,y) printf("%d %d\n",x,y)
  34. #define pr3(x,y,z) printf("%d %d %d\n",x,y,z)
  35.  
  36. #define prll1(x) printf("%lld\n",x)
  37. #define prll2(x,y) printf("%lld %lld\n",x,y)
  38. #define prll3(x,y,z) printf("%lld %lld %lld\n",x,y,z)
  39.  
  40. #define pr_vec(v) for(int i=0;i<v.size();i++) cout << v[i] << " " ;
  41.  
  42. #define f_in(st) freopen(st,"r",stdin)
  43. #define f_out(st) freopen(st,"w",stdout)
  44.  
  45. #define fr(i, a, b) for(i=a; i<=b; i++)
  46. #define fb(i, a, b) for(i=a; i>=b; i--)
  47. #define ASST(x, l, r) assert( x <= r && x >= l )
  48.  
  49. #include <ext/pb_ds/assoc_container.hpp>
  50. #include <ext/pb_ds/tree_policy.hpp>
  51.  
  52. const int mod = 1e9 + 7;
  53.  
  54. int ADD(int a, int b, int m = mod) {
  55. int s = a;
  56. s += b;
  57. if( s >= m )
  58. s -= m;
  59. return s;
  60. }
  61.  
  62. int MUL(int a, int b, int m = mod) {
  63. return (1LL * a * b % m);
  64. }
  65.  
  66. int power(int a, int b, int m = mod) {
  67. int res = 1;
  68. while( b ) {
  69. if( b & 1 ) {
  70. res = 1LL * res * a % m;
  71. }
  72. a = 1LL * a * a % m;
  73. b /= 2;
  74. }
  75. return res;
  76. }
  77.  
  78. ll nC2(ll x) {
  79. return ( x * ( x - 1 ) / 2 );
  80. }
  81.  
  82. const int maxn = 1e5 + 5;
  83.  
  84. int A[ maxn ], N, K;
  85. multiset<ll> Q;
  86. int main() {
  87. cin >> N >> K;
  88. int i, j;
  89. fr(i, 1, N) cin >> A[i];
  90.  
  91. vl sum;
  92. fr(i, 1, N) {
  93. ll s = 0;
  94. fr(j, i, N) {
  95. s += A[j];
  96. if( Q.size() < K ) Q.insert(s);
  97. else if(*Q.begin() < s) {
  98. Q.erase(Q.begin());
  99. Q.insert(s);
  100. }
  101. }
  102. }
  103. while( !Q.empty() ) {
  104. auto it = Q.end(); --it;
  105. cout << *it << " ";
  106. Q.erase(it);
  107. }
  108. cout << "\n";
  109. return 0;
  110. }
Success #stdin #stdout 0s 3808KB
stdin
3 2
1 2 3
stdout
6 5