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 | 3857 |
| 2 | jiangly | 3810 |
| 3 | maroonrk | 3534 |
| 4 | tourist | 3528 |
| 5 | Kevin114514 | 3510 |
| 6 | turmax | 3411 |
| 7 | Um_nik | 3387 |
| 8 | Radewoosh | 3367 |
| 9 | heuristica | 3322 |
| 10 | strapple | 3317 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 157 |
| 2 | maspy | 150 |
| 3 | Um_nik | 145 |
| 4 | Errichto | 139 |
| 5 | adamant | 136 |
| 6 | maroonrk | 134 |
| 7 | DNR | 133 |
| 7 | nik_exists | 133 |
| 9 | AmShZ | 130 |
| 10 | Dominater069 | 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$$$