以下代码运行耗时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;}
题目
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;
}