File tree Expand file tree Collapse file tree 1 file changed +12
-20
lines changed Expand file tree Collapse file tree 1 file changed +12
-20
lines changed Original file line number Diff line number Diff line change @@ -17,30 +17,22 @@ typedef vector<vs> vvs;
17
17
18
18
class Apothecary {
19
19
public:
20
- int next (int x){
21
- int i = 1 ;
22
- while (i < x) i *= 3 ;
23
- return i;
24
- }
25
20
vi balance (int W){
26
- vi v[2 ];
27
- int n = W, m = 1 ;
28
- while (true ){
29
- int k = next (n);
30
- if (k/2 < n){
31
- v[m].push_back (k);
32
- if (k == n) break ;
33
- n = k-n;
34
- m = (m+1 )%2 ;
21
+ vi r;
22
+ int n = W;
23
+ int c = 1 ;
24
+ while (n > 0 ){
25
+ if (n%3 == 1 ){
26
+ r.push_back (c);
27
+ n--;
35
28
}
36
- else {
37
- v[m] .push_back (k/ 3 );
38
- n = n-k/ 3 ;
29
+ else if (n% 3 == 2 ) {
30
+ r .push_back (-c );
31
+ n++ ;
39
32
}
33
+ c *= 3 ;
34
+ n /= 3 ;
40
35
}
41
- vi r;
42
- for (int p : v[0 ]) r.push_back (-p);
43
- for (int p : v[1 ]) r.push_back (p);
44
36
sort (r.begin (), r.end ());
45
37
return r;
46
38
}
You can’t perform that action at this time.
0 commit comments