頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

ABC087 C - Candies

問題はこちら atcoder.jp

方針

簡単のため,上の列をマス a_1,a_2,...,a_N ,下の列をマス b_1,b_2,...,b_N とします。

動き方のパターンは,どの i\,(1 \leq N \leq 100)a_i \rightarrow b_i と動くかの高々 100 通りしかないので,全部調べればよいです。

コード

#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0; i<(n); i++)

int main(){
    int n;
    cin>>n;
 
    vector<int> a(n),b(n);
    REP(i,n){
        cin>>a[i];
    }
    REP(i,n){
        cin>>b[i];
    }
 
    int sum=0,max=0;
    REP(i,n){
        sum=0;
        REP(j,n){
            if(j<i){
                sum+=a[j];
            }else if(j==i){
                sum+=(a[j]+b[j]);
            }else{
                sum+=b[j];
            }
        }
        if(sum>max){
            max=sum;
        }
    }
 
    cout<<max<<endl;
}