ARC090 C : Candies(300)
作成日:2018.02.02
最終更新日:2018.02.02
問題概要
$2 \times N$のマス目の$i$行$j$列のマス$(i,j)$に飴が$A_{i,j}$個置いてある。
$(1,1)$から$(2,N)$へ遠回りせずに移動する時、訪れたマスにある飴の総数の最大値を求めよ。
制約
$1 \leq N \leq 100$
$1 \leq A_{i,j} \leq 100$
考え方
移動の仕方は、$1$行目から$2$行目に動く列の位置の数と同じ$N$通りである。
$N$は小さいので全通り試すことができる。
ソースコード
マクロ等はこちら
const int MC = 110;
int N;
int sa[MC];
int sb[MC];
int main(){
cin >> N;
repp(i,1,N+1){
cin >> sa[i];
sa[i] += sa[i-1];
}
repp(i,1,N+1){
cin >> sb[i];
sb[i] += sb[i-1];
}
int ans = 0;
repp(i,1,N+1){
ans = max(ans , sa[i]+sb[N]-sb[i-1]);
}
cout << ans << endl;
return 0;
}
解法まとめ
$N$通りの移動の仕方それぞれについて飴の数を求め、その最大値が答えである。(16-20行)