In C, how do you prove that if no character appears more than floor(n/2) times, we can always achieve n%2 length of the final string? (where 'n' is the length of the given string) Please help.
| # | User | Rating |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | jiangly | 3670 |
| 3 | Kevin114514 | 3657 |
| 4 | maroonrk | 3355 |
| 5 | Um_nik | 3353 |
| 6 | squareOf105 | 3346 |
| 7 | tourist | 3343 |
| 8 | strapple | 3324 |
| 9 | heuristica | 3322 |
| 10 | jiangbowen | 3291 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | AmShZ | 143 |
| 5 | Um_nik | 141 |
| 6 | Errichto | 139 |
| 7 | adamant | 137 |
| 8 | BledDest | 133 |
| 8 | maroonrk | 133 |
| 10 | qwexd | 129 |
In C, how do you prove that if no character appears more than floor(n/2) times, we can always achieve n%2 length of the final string? (where 'n' is the length of the given string) Please help.
| Name |
|---|



Let
First, notice that we can do some operation exactly when $$$\mathrm{maxf}_1 \lt n$$$.
Case 1: $$$n\equiv0\pmod{2}$$$
Claim: If $$$\mathrm{maxf}_1 \le n/2$$$ and $$$n \gt 0$$$, we can do an operation such that after the operation, $$$\mathrm{maxf}_1 \le n/2$$$.
Proof:
This means that if we have $$$\mathrm{maxf}_1 \le n/2$$$ and $$$\mathrm{maxf}_1 \lt n$$$, we can do an operation and keep the first condition satisfied. Thus, we can do operations while $$$n/2 \lt n\ \Leftrightarrow\ 0 \lt n/2\ \Leftrightarrow\ n \gt 0$$$. Thus we can always reach the state with $$$n = 0$$$. $$$\square$$$
Case 2: $$$n\equiv1\pmod{2}$$$
Claim: If $$$\mathrm{maxf}_1 \le \lceil n/2\rceil$$$ and $$$n \gt 1$$$, we can do an operation such that after the operation, $$$\mathrm{maxf}_1 \le \lceil n/2\rceil$$$.
Proof:
This means that if we have $$$\mathrm{maxf}_1 \le \lceil n/2\rceil$$$ and $$$\mathrm{maxf}_1 \lt n$$$, we can do an operation and keep the first condition satisfied. Thus, we can do operations while $$$\lceil n/2\rceil \lt n\ \Leftrightarrow\ (n+1)/2 \lt n\ \Leftrightarrow\ n+1 \lt 2n\ \Leftrightarrow\ 1 \lt 2n-n\ \Leftrightarrow\ n \gt 1$$$. Thus we can always reach the state with $$$n = 1$$$. $$$\square$$$