#include #define INF 10000000000007LL using namespace std; typedef long long ll; typedef pair P; class segtree{ public: static const int N=1<<18; ll dp[1<<19]; ll lazy[1<<19]; segtree(){ memset(dp,0,sizeof(dp)); } void lazy_eval(int k){ dp[k]+=lazy[k]; if(k0){ seg[0].update(0,i,val); }else{ seg[1].update(0,i,-val); } ll bv=seg[0].query(0,i); bv=min(seg[1].query(0,i)+p,bv); seg[0].update(i,i+1,bv); seg[1].update(i,i+1,bv); } printf("%lld\n",min(seg[0].query(n-1,n),seg[1].query(n-1,n))); return 0; }