Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 3e4;
- int sticks[N + 10];
- int main(){
- int nStick;
- scanf("%d", &nStick);
- if(nStick < 3){
- cout << nStick;
- return 0;
- }
- for(int i = 1; i <= nStick; ++i){
- scanf("%d", &sticks[i]);
- }
- sort(sticks + 1, sticks + nStick + 1);
- int lastIdx = lower_bound(sticks + 1, sticks + nStick + 1, sticks[1] + sticks[2]) - sticks;
- int mx = 2;
- for(int i = 1; i <= nStick - 2; ++i){
- while(lastIdx <= nStick && sticks[i] + sticks[i + 1] > sticks[lastIdx]){
- ++lastIdx;
- }
- mx = max(mx, lastIdx - i);
- if(lastIdx > nStick){
- break;
- }
- }
- cout << mx;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement