Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <cstdio>
- #include <utility>
- #include <vector>
- #include <set>
- #include <map>
- #include <queue>
- #include <stack>
- #include <string>
- #include <cmath>
- #include <bitset>
- #include <ctime>
- #include <random>
- #include <cstdlib>
- #include <deque>
- #define F first
- #define S second
- #define pb push_back
- #define ll long long
- using namespace std;
- const int N = 2e5+5, INF = 1e9;
- const bool debug = 0;
- int n, a[N], dr[N], dl[N], len, l, r, ans = 1;
- bool is_l[N], is_r[N];
- int main(){
- if(debug) freopen("input.txt","r",stdin);
- ios_base::sync_with_stdio(0);
- cin.tie(0); cout.tie(0);
- cin >> n >> a[0];
- len = dr[0] = dl[0] = 1;
- a[n] = -228;
- for(int i = 1; i < n; ++i){
- cin >> a[i];
- if(a[i-1]<a[i]) dr[i] = ++len;
- else dr[i] = len = 1;
- dl[i-len+1] = len;
- ans = max(ans,len);
- }
- for(int i = 1; i < n; ++i){
- if(!dl[i]) dl[i] = dl[i-1]-1;
- }
- for(int i = 2; i < n; ++i){
- if(a[i-2]<a[i]) ans = max(dl[i]+dr[i-2],ans);
- }
- cout << ans;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement