1+ // /* |\ | | ||\ \ /(_~ |~)|_~|\/||_~|\/||~)|_~|~)
2+ // |~\|_|/\||~\ | ,_) |~\|__| ||__| ||_)|__|~\
3+
4+ // \ //~\| | |\ |~)|_~ | ||\ ||/~\| ||_~
5+ // | \_/\_/ |~\|~\|__ \_/| \||\_X\_/|__
6+ // (J U S T L I K E E V E R Y O N E E L S E !)
7+
8+ // __ ,..---.._
9+ // +''''`--''-..`--..__
10+ // .\ _,/:i--._`:-:+._`.``-._
11+ // /`.._,,' \ `-.``--:.b....=.
12+ // |`..__,,..`. '`.__::i--.-::_
13+ // )- .....--i'\.. --+`'''-'
14+ // ,' .'.._,.-'|._-b\
15+ // /,'<' V `oi| \ _.
16+ // |/ -|,--.." ,'-. ||\.. _.,;:'_<'
17+ // ''/ | . ' |\||'\ /-'_/' `.
18+ // |,','| , . .-.|:.`. + .,:.. |
19+ // ._,:'/ /-\ '^' -Y"\ |.| || /,+8d| |
20+ // .|/,'| |/':: ':=:' ,'| | | \|| "+)=' |
21+ // |+,';' /|_/ \ _/ \b':.\ \'| .|| ,'
22+ // ,,:-i''_i' | ``-.Y',. ,|`: | \;- | |_,'
23+ // __ |'| |i:'._ ,' ,' ,; | |-)-' __--:b__
24+ // .P| | |/,'|\ - ._ / / _,Y- ,:/' `. `'".._
25+ // ,'|| -','' | ._i._ `':| ,..,' ,Y;' \ `- ._
26+ // |||||,.. | \ '-.._ _,' / _,b-' `. '-.
27+ // ||||P..i, .| '....,-' _,'''''-''' ' _,.. `\
28+ // +'` <'/ |`-.....---' ._ ,._
29+ // | | ,'``,:-''''/,--`.
30+ // Y|.b_,,: | || ,;,Y' / |.
31+ // ,' /'----' .'| .. | | '" .`Y' .,-b_....;;,.
32+ // |+|,' | | \., ' ,' `:. _ ,/__` _=: _,'``-
33+ // / +,' | /\_........:.' '"----:::::'Y .'.| |||
34+ // |' ' .'/- \ /'|| || | |||
35+ // ||| /| \L /'|| ||/ | |||
36+ // `.| ,'/ .| / ,'||/o;/ |||
37+ // `..._,, | |/| ' |||
38+ // ``-' | |, |||
39+ // | ,. | |||
40+ // ,=--------.... | "" | |||
41+ // ,/,'. i=..+._ ,.. '..;---:::''- | |
42+ // '/| __....b `-''`---....../.,Y'''''j:.,.._ | `._
43+ // .' _.Y.-' `.. ii:,'--------' | :-+. .| | b\
44+ // | .=_,.---'''''--...:..--:' / _..-----..:= | | '|\
45+ // | '-''`'--- ---'_,,,--'' `,.. | | \.
46+ // \ . ,' _,--'' :dg: _,/ ||| | \
47+ // `::b\` _,-i,-' ,..---' ,|:| | _|
48+ // `'--.:-._ ____,,,;.,'' `--._ '''''''' |'|' .' '
49+ // ``'--....Y''-' `''--..._..____._____...,' | 'o-'
50+ // `''''`'''i==_+=_=i__
51+ // ||'''- ' `.
52+ // `-.......-''
53+ // */
54+ // #include<bits/stdc++.h>
55+ // using namespace std;
56+
57+ // #define fastio ios_base::sync_with_stdio(0); cin.tie(0)
58+ // #define LL long long
59+ // #define mod 1000000007
60+ // #define FOR(i, j, k) for (int i=j ; i<k ; i++)
61+ // #define ROF(i, j, k) for (int i=j ; i>=k ; i--)
62+ // #define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
63+ // #define time__(d) for(long blockTime = 0; (blockTime == 0 ? (blockTime=clock()) != 0 : false); debug("%s time : %.4fs", d, (double)(clock() - blockTime) / CLOCKS_PER_SEC))
64+
65+ // const long long INF = 1e18;
66+ // const long long MAX = 1e5+10;
67+ // int main(){
68+ // fastio;
69+ // int t=1; cin>>t;
70+ // while(t--){
71+ // int n,k;cin>>n>>k; vector<int>a(n),w(k); int ones=0;
72+ // FOR(i,0,n) cin>>a[i];
73+ // FOR(i,0,k) { cin>>w[i]; if(w[i]==1) ones++; }
74+ // sort(a.begin(),a.end(),greater<int>());sort(w.begin(),w.end());
75+ // int i =0,j=ones; LL sum=0;
76+ // while(ones--) sum+=a[i]+a[i],i++;
77+
78+
79+ // }
80+ // }
81+ /* |\ | | ||\ \ /(_~ |~)|_~|\/||_~|\/||~)|_~|~)
82+ |~\|_|/\||~\ | ,_) |~\|__| ||__| ||_)|__|~\
83+
84+ \ //~\| | |\ |~)|_~ | ||\ ||/~\| ||_~
85+ | \_/\_/ |~\|~\|__ \_/| \||\_X\_/|__
86+ (J U S T L I K E E V E R Y O N E E L S E !)
87+
88+ __ ,..---.._
89+ +''''`--''-..`--..__
90+ .\ _,/:i--._`:-:+._`.``-._
91+ /`.._,,' \ `-.``--:.b....=.
92+ |`..__,,..`. '`.__::i--.-::_
93+ )- .....--i'\.. --+`'''-'
94+ ,' .'.._,.-'|._-b\
95+ /,'<' V `oi| \ _.
96+ |/ -|,--.." ,'-. ||\.. _.,;:'_<'
97+ ''/ | . ' |\||'\ /-'_/' `.
98+ |,','| , . .-.|:.`. + .,:.. |
99+ ._,:'/ /-\ '^' -Y"\ |.| || /,+8d| |
100+ .|/,'| |/':: ':=:' ,'| | | \|| "+)=' |
101+ |+,';' /|_/ \ _/ \b':.\ \'| .|| ,'
102+ ,,:-i''_i' | ``-.Y',. ,|`: | \;- | |_,'
103+ __ |'| |i:'._ ,' ,' ,; | |-)-' __--:b__
104+ .P| | |/,'|\ - ._ / / _,Y- ,:/' `. `'".._
105+ ,'|| -','' | ._i._ `':| ,..,' ,Y;' \ `- ._
106+ |||||,.. | \ '-.._ _,' / _,b-' `. '-.
107+ ||||P..i, .| '....,-' _,'''''-''' ' _,.. `\
108+ +'` <'/ |`-.....---' ._ ,._
109+ | | ,'``,:-''''/,--`.
110+ Y|.b_,,: | || ,;,Y' / |.
111+ ,' /'----' .'| .. | | '" .`Y' .,-b_....;;,.
112+ |+|,' | | \., ' ,' `:. _ ,/__` _=: _,'``-
113+ / +,' | /\_........:.' '"----:::::'Y .'.| |||
114+ |' ' .'/- \ /'|| || | |||
115+ ||| /| \L /'|| ||/ | |||
116+ `.| ,'/ .| / ,'||/o;/ |||
117+ `..._,, | |/| ' |||
118+ ``-' | |, |||
119+ | ,. | |||
120+ ,=--------.... | "" | |||
121+ ,/,'. i=..+._ ,.. '..;---:::''- | |
122+ '/| __....b `-''`---....../.,Y'''''j:.,.._ | `._
123+ .' _.Y.-' `.. ii:,'--------' | :-+. .| | b\
124+ | .=_,.---'''''--...:..--:' / _..-----..:= | | '|\
125+ | '-''`'--- ---'_,,,--'' `,.. | | \.
126+ \ . ,' _,--'' :dg: _,/ ||| | \
127+ `::b\` _,-i,-' ,..---' ,|:| | _|
128+ `'--.:-._ ____,,,;.,'' `--._ '''''''' |'|' .' '
129+ ``'--....Y''-' `''--..._..____._____...,' | 'o-'
130+ `''''`'''i==_+=_=i__
131+ ||'''- ' `.
132+ `-.......-''
133+ */
134+ #include < bits/stdc++.h>
135+ using namespace std ;
136+
137+ #define fastio ios_base::sync_with_stdio (0 ); cin.tie(0 )
138+ #define LL long long
139+ #define mod 1000000007
140+ #define FOR (i, j, k ) for (int i=j ; i<k ; i++)
141+ #define ROF (i, j, k ) for (int i=j ; i>=k ; i--)
142+ #define debug (...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
143+ #define time__ (d ) for (long blockTime = 0 ; (blockTime == 0 ? (blockTime=clock()) != 0 : false ); debug(" %s time : %.4fs" , d, (double )(clock() - blockTime) / CLOCKS_PER_SEC))
144+
145+ const long long INF = 1e18 ;
146+ const long long MAX = 1e5 +10 ;
147+ int main (){
148+ fastio;
149+ int t=1 ; cin>>t;
150+ while (t--){
151+ int n,k;cin>>n>>k; vector<int >a (n),w (k);
152+ FOR (i,0 ,n) cin>>a[i];
153+ FOR (i,0 ,k) cin>>w[i];
154+ sort (a.begin (),a.end (),greater<int >());sort (w.begin (),w.end ());
155+ LL sum=0 ; int j=0 ,i=0 ;
156+ while (i<n && w[j]==1 ) sum+=a[i]+a[i],i++,j++,k--;
157+ FOR (l,i,i+k) sum+=a[l];
158+ int wl=w.size ()-1 ;
159+ ROF (l,n-1 ,i+k){
160+ sum+=a[l];
161+ l-=(w[wl--]-2 );
162+ }
163+ cout<<sum<<" \n " ;
164+ }
165+ }
0 commit comments