- #include <iostream>
- using namespace std;
- int times(int count);
- int main(){
- int n, k, sum, tmp, swap, target;
- int i = 0, j, m;
- cin >> n >> k;
- int p[10000];
- int *a_i = new int[n];
- for (; i < n; ++i) cin >> a_i[i];
- for (j = 1; j < n+1 ; ++j ){
- for (i = 0; i < n-j+1; ++i){
- sum = 0;
- for (m = 0; m < j; ++m) sum += a_i[m];
- tmp = times(j) + i;
- if (tmp == 1) {
- p[0] = sum;
- continue;
- }
- for (m = 0; m < tmp; ++m) if (sum > p[m]) { swap=sum; sum=p[m]; p[m]=swap; }
- }
- }
- int t = 1;
- for (m = 1; m < tmp; ++m){
- if (p[m] != p[m-1]) ++t;
- if (t == k) { cout << p[m]; break;}
- }
- return 0;
- }
- int times(int count){
- if (count > 1) return times(count-1) + count - 2;
- else return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/0701201511504.html
来源: http://www.codesnippet.cn/detail/0701201511504.html