diff --git a/src/10/20/P4087.cpp b/src/10/20/P4087.cpp index 0160678..d5f0fc2 100644 --- a/src/10/20/P4087.cpp +++ b/src/10/20/P4087.cpp @@ -32,10 +32,9 @@ int main() { for (ll i = 1; i <= n; i++) { ll max_num_before = num_cowcount.rbegin()->first; - bool just_one_was_max = num_cowcount.rbegin()->second==1; ll old_cownum = cow_num[c[i].c]; - + ll wasmaxcnt = num_cowcount[old_cownum]; bool was_top = (old_cownum == max_num_before); num_cowcount[old_cownum]--; @@ -47,12 +46,12 @@ int main() { cow_num[c[i].c] = new_cownum; num_cowcount[new_cownum]++; - + ll ismaxcnt = num_cowcount[new_cownum]; ll max_num_after = num_cowcount.rbegin()->first; bool is_top = (new_cownum == max_num_after); - if ((max_num_before != max_num_after && !just_one_was_max) || (was_top != is_top)) { + if ((was_top != is_top)||(was_top&is_top && wasmaxcnt!=ismaxcnt)) { ans++; } }