Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>using namespace std;int N, nxt = 0;long long res = 0, num = 0;void solve(vector<vector<long long>> &vtr, int i){if(i >= N) return;long long x = vtr[i][0] - num, y = vtr[i][1] - num, p, t;if(x * y < 0){p = x < 0;t = p ? min(-x, y) : min(x, -y);vtr[i][p] -= t;vtr[i][1 - p] += t;res += t;x = vtr[i][0] - num;y = vtr[i][1] - num;}if(x || y){if(x >= 0 && y >= 0) res += x + y;else res += - x - y;vtr[i + 1][0] += x;vtr[i + 1][1] += y;}solve(vtr, i + 1);return;}int main(){int i;scanf("%d", &N);