# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
Name |
---|
as i mentioned before on the main blog comment, the given test data is special, and i'm not sure if there's algorithm with less than O(N^2) complexity on the worst case
There is an algorithm with linear complexity :). If you managed to pass all tests with O(n^2) complexity it was rather undesirable :P. There are two tricky observations in this task, which can be easily proven:
If we want to maximize only the ratio, not the length, we can consider substrings with only one bad letter.
If length is also taken into cosideration, we should additionally check if there exists a substring of form 0000110000 (k zeros, 2 ones and k zeros), where k is the best ratio. Given that observations we can easily come up with a linear algorithm.
P.S. At the beginning the ratio of T's and C's to the A's and G's was near 1. Later, in order to make inputs better compress, this ratio were highly lowered. P.S.2 I've come up with an idea for this problem (others were monsoon's), hope you enjoyed it :).