#include using namespace std; struct st{ vectorss; st(){} void rr(int n){ ss.resize(n*5); } int q(int n,int s,int e,int l,int r){ if(s>r||e=l&&e<=r)return ss[n]; return max(q(n+n,s,(s+e)/2,l,r),q(n+n+1,(s+e)/2+1,e,l,r)); } void u(int n,int s,int e,int p,int v){ if(s>p||e minimumZooNumbers(int m, int n, vector t, vector s, vector d) { st tt[4]; tt[0].rr(m+1); tt[1].rr(m+1); tt[2].rr(m+1); tt[3].rr(m+1); vector>>sd(n); for(int a=0;aff(n); int trm=0; for(int a=1;a<=m;a++){ if(trm==n)break; int g=max(tt[0].q(1,0,m,a,a),tt[1].q(1,0,m,a,a)); g=max(g,max(tt[2].q(1,0,m,a,a),tt[3].q(1,0,m,a,a))); for(int b=trm;b> cases; for(int a0 = 0; a0 < cases; a0++){ int m; int n; cin >> m >> n; vector t(n); for(int t_i = 0; t_i < n; t_i++){ cin >> t[t_i]; } vector s(n); for(int s_i = 0; s_i < n; s_i++){ cin >> s[s_i]; } vector d(n); for(int d_i = 0; d_i < n; d_i++){ cin >> d[d_i]; } vector result = minimumZooNumbers(m, n, t, s, d); for (ssize_t i = 0; i < result.size(); i++) { cout << result[i] << (i != result.size() - 1 ? " " : ""); } cout << endl; } return 0; }