ARC090 C : Candies(300)
作成日:2018.02.02
最終更新日:2018.02.02
問題概要
2×Nのマス目のi行j列のマス(i,j)に飴がAi,j個置いてある。
(1,1)から(2,N)へ遠回りせずに移動する時、訪れたマスにある飴の総数の最大値を求めよ。
制約
1≤N≤100
1≤Ai,j≤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行)