天天看點

Educational Codeforces Round 112 (Rated for Div. 2) C-Coin Rows

​​傳送門​​

思路:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<map>
#include<queue>
#include<math.h>
using namespace std;
#define ll long long
ll a[10][100010];


int main()
{
  int t;
  cin>>t;
  while(t--)
  {
    int n;
    cin>>n;
    for(int i = 1; i <= n; i++)
    cin>>a[1][i];
    for(int i = 1; i <= n; i++)
    cin>>a[2][i];
    int flag = 0,maxx = 0x3f3f3f3f;
    ll ans = 0;
    int l = 1,r = n;
    ll lsum = 0,rsum = 0;
    if(a[1][r] > a[2][l])
    {
      lsum += a[2][l];
      r = n+1;
    }
    else
    {
      rsum += a[1][r];
      l = 0;
    }
    while(l < r)
    {
      if(lsum > rsum)
      {
        rsum += a[1][--r];
      }
      else
      {
        lsum += a[2][++l];
      }
    }
    ll sum1 = 0,sum2 = 0;
    for(int i = 1; i < r; i++)
    {
      if(i != n)
      sum1 += a[2][i];
    }
    for(int i = r+1; i <= n; i++)
    sum2 += a[1][i];
    cout<<max(sum1,sum2)<<endl;
  }
}