#include "stdio.h"
#include "stdlib.h"
void sort(int *a,int len)
{
int i, j;
for(i=len-1; i>=0; i--) {
for(j=0; j<len;j++)
if(a[j] < a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
} int n,k,stone[128];
int min=0,i,tdata[128],a[128];
int Fmin()
{
int len = n;
for( i=0; i<len; i++)
tdata[i] = stone[i];
while (len % (k - 1) != 1)
{
len++;
tdata[len-1]=0;
}
int p =0;
while(1)
{
if(len < k) break;
int temp = 0;
for (int j=1; j<=k; j++)
{
temp += tdata[len-j];
}
// printf("%d\n",temp);
a[p++] = temp;
tdata[len-k] = temp;
len = len - k + 1;
sort(tdata,len);
}
for(int j=0; j<len;j++){
min = min + a[j];
return min;
}
}
int Fmax()
{
int max = 0;
int temp = stone[0] + stone[1];
max = temp;
for (int i=2; i<=k;i++)
{
temp = temp + stone[i];
max += temp;
}
return max;
}
int main()
{
int i;
int n,k,stone[128];
scanf("%d%d",&n,&k);
for( i=0; i<n;i++){
scanf("%d",&stone[i]);
sort(stone,n);
printf("%d %d\n",Fmin(),Fmax());
return 0;
}
}
原题及正常情况下输出结果应如上图所示,但为什么运行结果会是下边的呢
求教
灰常感谢啊
你的这个算法问题与你的程序代码不配套啊。
短时间我也写不出来。你自己多用用功,查一查相关代码参考一下吧
嗯,多谢了,我再看看吧
追答受之有愧,汗