关闭

138人阅读 评论(0) 收藏 举报
分类:

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

现在有n块砖排成一排。现在zs站在第一块砖的前面,zs可以跳k次,每次可以跳无限远。现在给这n块砖标上数字Si,当zs跳到这块砖上时,其得分s += Si。问zs跳k次之后的最大得分是多少。初始时,得分s = 0。zs每次只能落在一块砖上。

输入

多组输入。每组首先输入两个正整数n,k(1 <= k <= n <= 100)。
接下来的一行有n个数代表Si。

输出

对于每组数据,输出一个正整数S,代表zs可以得到的最大得分。

示例输入

3 3
1 2 3
3 2
1 2 3

示例输出

6
5

提示

 

来源

 

示例程序

 
#include<stdio.h>  
int main()  
{  
    int i,j,n,m,k,t,a[200],b;  
    while(scanf("%d %d",&n,&m)!=EOF)  
    {  
        b=0;  
        for(i=0;i<n;i++)  
            scanf("%d",&a[i]);  
        for(i=0;i<n-1;i++)  
        {  
            k=i;  
            for(j=i+1;j<n;j++)  
                if(a[k]<a[j])  
                    k=j;  
                if(k!=i)  
                {  
                    t=a[k];  
                    a[k]=a[i];  
                    a[i]=t;  
                }  
        }  
        for(i=0;i<m;i++)  
        b+=a[i];  
    printf("%d\n",b);  
    }  
} 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:150814次
    • 积分:7122
    • 等级:
    • 排名:第3272名
    • 原创:584篇
    • 转载:33篇
    • 译文:0篇
    • 评论:6条
    最新评论