一道签到题 但卡了很久 题目理解错了 原本不想这样写的 后面再改了
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 220
int cmp(const void *a,const void *b);
int main()
{
int T,n,m,p,k,t,a[MAX],b[MAX];
scanf("%d",&T);
while (T--)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%d%d",&n,&m);
/*for (p=0;p<n;p++)
{
if (p==0)
scanf("%d",&a[p]);
else
{
scanf("%d",&k);
a[p]=k+a[p-1];
}
}
for (p=0,k=m-1,t=0;p<n;p++,k++)
{
if (p==0)
b[p]=a[k];
else if (n-p<m)
{
if (k<n)
b[p]=a[k]-a[k-p-1]+a[t];
else
b[p]=a[n-1]-a[n-p-1]+a[t];
t++;
}
else
b[p]=a[k]-a[k-p-1];
}*/
for (p=0;p<n;p++)
scanf("%d",&a[p]);
for (p=0;p<n;p++)
{
if (n-p<m)
{
for (t=p,k=0;k<m;k++,t++)
{
if (t==n)
t=0;
b[p]+=a[t];
}
}
else
{
for (k=0;k<m;k++)
b[p]+=a[p+k];
}
//printf("%d\n",b[p]);
}
qsort(b,n,sizeof(int),cmp);
printf("%d\n",b[0]);
}
return 0;
}
int cmp(const void *a,const void *b)
{
return -(*(int *)a-*(int *)b);
}