2013年8月9日金曜日

AOJ 0516

K&R読んでるのもあって、(C++のライブラリが要らない)簡単な問題なのでCで書いてみた。


#include<stdio.h>
int main(void){
int i, n, k, sum, max, a[100000];
while(scanf("%d %d", &n, &k), n){
sum = max = 0;
for(i = 0; i < n; i++){
scanf("%d", &a[i]);
if(i < k)
sum+=a[i];
}
max = sum;
for(i = k; i < n; i++){
sum += a[k] - a[k - i];
if(sum > max)
max = sum;
}
printf("%d\n", max);
}
return 0;
}
view raw aoj0516.c hosted with ❤ by GitHub


DPみたいに解くのかとか考えてたけど、問題見たら"k個の連続する数の和"だったので、単純に入る数と出る数だけ計算すればいいだけだった。

K&R、なかなか進まない……

0 件のコメント:

コメントを投稿