minCostFlowf; f.malloc(2d5+2); ll@t; rep(t){ ll@n,@k,@a[n],@b[n],@c[n],@d[n]; f.init(n+2); rep(i,n){ f.addEdge(0,i+2,b[i],a[i]); f.addEdge(i+2,1,d[i],-c[i]); } rep(i,n-1){ f.addEdge(i+2,i+3,k,0); } f.addEdge(0,1,1d18,0); ll fr,cr; f.solve(0,1,fr,cr,1d18); wt(-cr); }