LeetCode Weekly Contest 222 3問目 - Ways to Split Array Into Three Subarrays [1712]

Source

LeetCode Weekly Contest 222
問題文

問題概要

省略

解法

省略

cLayversion 20210103-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

Arr1d<int> A;

class Solution {
public:
  int waysToSplit(vector<int>& nums) {
    int N = nums.size(), x = 1, y = 1;
    ll res = 0;
    
    A.set(nums);
    rep(i,1,N-1){
      while(x < N-i && A.getSum(0,i-1) > A.getSum(i,i+x-1)) x++;
      while(y < N-i && A.getSum(i,i+y-1) <= A.getSum(i+y,N-1)) y++;
      if(y > x) res += y - x;
      x = max(1, x-1);
      y = max(1, y-1);
    }

    return res % MD;
  }
};

Current time: 2024年04月25日16時31分56秒
Last modified: 2021年01月03日17時00分31秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: