Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define dbg(i,j) cout<<"I am "<<i<<" = "<<endl<<j<<endl;
- #define dbr(name,a) cout<<name<<endl;for(auto x:a)cout<<x<<" ";cout<<endl;
- #define DBR(name,a) cout<<name<<endl;for(auto x:a){ for(auto y:x)cout<<y<<" ";cout<<endl;}
- #define dbmp(name,a) cout<<name<<endl;for(auto x:a){ cout<<x.first<<"\t"<<x.second<<endl;}
- #define dbp(name,a) cout<<name<<endl;cout<<a.first<<"\t"<<a.second<<endl;
- #define boost ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
- using namespace std;
- typedef long long int big;
- typedef long double fig;
- int main(){
- big n;
- cin>>n;
- vector<big> arr(n);
- map<big,big> count;
- for(big i=0;i<n;i++){
- cin>>arr[i];
- }
- big start=0,end=0,now=0,l=0;
- big a=0,b=0;
- for(big i=0;i<n;i++){
- count[arr[i]]++;
- if(count[arr[i]]==1){
- now++;
- if(now<=1){
- a=arr[i];
- b=arr[i];
- }
- else if(now>1){
- b=arr[i];
- }
- }
- while(now>2){
- count[arr[i]]--;
- if(count[arr[l]]==0){
- now--;
- }
- l++;
- }
- if((abs(a-b)<=1) && i-l+1>=end-start+1){
- end=i,start=l;
- }
- }
- /*for(big i=start;i<=end;i++){
- cout<<arr[i]<<" ";
- }*/
- cout<<(end-start+1)<<endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment