Skip to content

Commit 35e7a37

Browse files
committed
srm 204 div 1 300 sol
1 parent 7311a6f commit 35e7a37

File tree

1 file changed

+12
-20
lines changed

1 file changed

+12
-20
lines changed

Apothecary.cpp

+12-20
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,22 @@ typedef vector<vs> vvs;
1717

1818
class Apothecary{
1919
public:
20-
int next(int x){
21-
int i = 1;
22-
while(i < x) i *= 3;
23-
return i;
24-
}
2520
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--;
3528
}
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++;
3932
}
33+
c *= 3;
34+
n /= 3;
4035
}
41-
vi r;
42-
for(int p : v[0]) r.push_back(-p);
43-
for(int p : v[1]) r.push_back(p);
4436
sort(r.begin(), r.end());
4537
return r;
4638
}

0 commit comments

Comments
 (0)