LeetCode Biweekly Contest 18
問題文
省略
省略
C++に変換後のコードはこちら
#define main dummy_main
{}
#undef main
int N;
ll A[1d5];
ll s[1d5], t[1d5];
class Solution {
public:
int maxValueAfterReverse(vector<int>& nums) {
ll res = 0, tmp = 0;
N = nums.size();
rep(i,N) A[i] = nums[i];
if(N==1) return 0;
rep(i,1,N) res += abs(A[i] - A[i-1]);
rep(2){
rep(i,1,N) tmp >?= abs(A[0] - A[i]) - abs(A[i-1] - A[i]);
reverse(A,A+N);
}
rep(mask,1<<2){
rep(i,N-1) s[i] = -abs(A[i]-A[i+1]) if[mask&1, +, -] A[i] if[mask&2, +, -] A[i+1];
rep(i,1,N) t[i] = -abs(A[i]-A[i-1]) if[mask&1, -, +] A[i-1] if[mask&2, -, +] A[i];
rrep(i,1,N-1) t[i] >?= t[i+1];
rep(i,N-1) tmp >?= s[i] + t[i+1];
}
return res + tmp;
}
};
Current time: 2024年04月23日16時40分15秒
Last modified: 2020年02月08日23時01分06秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る
Logged in as: unknown user (not login)