c语言时间超限求优化

以下代码运行耗时1176ms时间超限了
#include<stdio.h>
int main()
{
int i = 0, j, n, k, a[100000] = {0}, sum = 0;
scanf("%d%d", &n, &k);
while (i < n)
{
scanf("%d", &a[i++]);
}
for (i = 0; i < n; i++)
{
if (i + k <= n)
{
for (j = i; j < i + k; j++)
{
sum += a[j];
}
}
else
break;
}
printf("%d\n", sum);
return 0;}
题目

img


int main()
{
    int i = 1, n, k, a, sum = 0;
    scanf("%d%d", &n, &k);
    int q,w;
    q=k;
    w=n-k+1;
    while (i <= n)
    {
        scanf("%d", &a);
        if(i<q){
            sum = sum + a*i;
        }else if(i>w)
        {
            sum = sum + a*(n-i+1);
        }else{
            sum = sum + a*k;
        }
        ++i;
    }
    printf("%d\n",sum);
    
    return 0;
}

试试这个

#include<stdio.h>
int main() {
    int i = 0, j, n, k, a[100000] = {0}, sum = 0,temp;
    scanf("%d%d", &n, &k);
    while (i < n) {
        scanf("%d", &a[i++]);
    }
    for (i = 0; i < n; i++) {
        if (i + k <= n) {
            if(i==0) {
                for (j = i; j < i + k; j++) {
                    sum += a[j];
                }
                temp = sum;
            }else{
                temp = temp-a[i-1]+a[i+k-1];
                sum=sum+temp;
            }

        } else
            break;
    }
    printf("%d\n", sum);
    return 0;
}