int removeThem(vector<int> a, int K) { k=K; n=a.size(); a0.clear(); a1.clear(); a2.clear(); a3.clear(); for(int i=0;i<a.size();++i) { if(a[i]%4==0)a0.pb(a[i]); if(a[i]%4==1)a1.pb(a[i]); if(a[i]%4==2)a2.pb(a[i]); if(a[i]%4==3)a3.pb(a[i]); } sort(a0.rbegin(),a0.rend()); sort(a1.rbegin(),a1.rend()); sort(a2.rbegin(),a2.rend()); sort(a3.rbegin(),a3.rend()); B[0][0]=a0[0]; for(int i=1;i<a0.size();++i) { B[0][i]=B[0][i-1]+a0[i]; } B[1][0]=a1[0]; for(int i=1;i<a1.size();++i) { B[1][i]=B[1][i-1]+a1[i]; } B[2][0]=a2[0]; for(int i=1;i<a2.size();++i) { B[2][i]=B[2][i-1]+a2[i]; } B[3][0]=a3[0]; for(int i=1;i<a3.size();++i) { B[3][i]=B[3][i-1]+a3[i]; } fill(dp,-1); return f(0,0,0,0); }