Has anybody noticed that submission 222222222 is coming? I know it's not as news-breaking as 200000000, but nonetheless, a neat number! Let's hope the 2x9th submission is accepted 😎

# | User | Rating |
---|---|---|

1 | tourist | 3757 |

2 | jiangly | 3647 |

3 | Benq | 3581 |

4 | orzdevinwang | 3570 |

5 | Geothermal | 3569 |

5 | cnnfls_csy | 3569 |

7 | Radewoosh | 3509 |

8 | ecnerwala | 3486 |

9 | jqdai0815 | 3474 |

10 | gyh20 | 3447 |

# | User | Contrib. |
---|---|---|

1 | maomao90 | 171 |

2 | adamant | 164 |

3 | awoo | 163 |

4 | TheScrasse | 159 |

5 | nor | 155 |

6 | maroonrk | 154 |

7 | -is-this-fft- | 152 |

8 | Petr | 147 |

9 | orz | 146 |

10 | pajenegod | 145 |

`n = -n`

, `n *= -1`

, or other methods? If so, suggest some methods down below.

I am trying to solve 165C using binary search, but it is getting TLE. Can anyone help?

Here's my code: 208389930

```
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll n, k;
ll pre[100005];
string s;
ll bs1(ll lo){
ll l = lo, r = n, mid;
while (l <= r){
mid = (l + r) / 2;
if (pre[mid] - pre[lo-1] <= k){
l = mid + 1;
} else {
r = mid - 1;
}
}
return r;
}
ll bs2(ll lo){
ll l = lo, r = n, mid;
while (l <= r){
mid = (l + r) / 2;
if (pre[mid] - pre[lo-1] >= k){
r = mid - 1;
} else {
l = mid + 1;
}
}
return l;
}
signed main(){
ll i, res;
cin >> k >> s;
n = s.size();
s = " " + s;
pre[0] = 0;
for (i = 1; i <= n; i++){
pre[i] = pre[i-1] + s[i] - '0';
}
res = 0;
for (i = 1; i <= n; i++){
res += bs1(i) - bs2(i) + 1;
}
cout << res;
}
```

Codeforces (c) Copyright 2010-2024 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/28/2024 22:29:39 (h2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|