百度安卓开发第三题礼物题求指点
只通过了60%,说是时间超限制,求帮忙看看
#include <iostream>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#define MAX 100000
int comp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
int main(int argc, char** argv) {
int n;
int k;
int sum=0;
int gift[MAX];
int pre[MAX];
scanf("%d",&n);
scanf("%d",&k);
for(int i=0;i<n;i++)
scanf("%d",&gift[i]);
for(int i=0;i<k;i++)
{
pre[i]=gift[i];
sum+=pre[i];
}
//将目前最喜欢的礼物排序
printf("%d ",sum);
qsort(pre,k,sizeof(int),comp);
for(int i=k;i<n;i++)
{
if(gift[i]>pre[0])
{
sum+=gift[i]-pre[0];
pre[0]=gift[i];
qsort(pre,k,sizeof(int),comp);
printf("%d ",sum);
}
else
printf("%d ",sum);
}
return 0;
}
#百度##安卓工程师#
查看5道真题和解析
