Knobody

Untitled

Jun 20th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define dbg(i,j) cout<<"I am "<<i<<" = "<<endl<<j<<endl;
  3. #define dbr(name,a) cout<<name<<endl;for(auto x:a)cout<<x<<" ";cout<<endl;
  4. #define DBR(name,a) cout<<name<<endl;for(auto x:a){ for(auto y:x)cout<<y<<" ";cout<<endl;}
  5. #define dbmp(name,a) cout<<name<<endl;for(auto x:a){ cout<<x.first<<"\t"<<x.second<<endl;}
  6. #define dbp(name,a) cout<<name<<endl;cout<<a.first<<"\t"<<a.second<<endl;
  7. #define boost ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  8. using namespace std;
  9.  
  10. typedef long long int big;
  11.  
  12. typedef  long double fig;
  13.  
  14. int main(){
  15.     big n;
  16.     cin>>n;
  17.     vector<big> arr(n);
  18.     map<big,big> count;
  19.     for(big i=0;i<n;i++){
  20.         cin>>arr[i];
  21.     }
  22.     big start=0,end=0,now=0,l=0;
  23.     big a=0,b=0,diff=0;
  24.     for(big i=0;i<n;i++){
  25.         count[arr[i]]++;
  26.         if(count[arr[i]]==1){
  27.             now++;
  28.             if(now<=1){
  29.                 a=arr[i];
  30.                 b=arr[i];
  31.             }
  32.             else if(now>1){
  33.                 b=arr[i];
  34.             }
  35.         }
  36.         while(now>2){
  37.             diff=abs(a-b);
  38.             a=0,b=0;
  39.             count[arr[l]]--;
  40.             if(count[arr[l]]==0){
  41.                 now--;
  42.             }
  43.             l++;
  44.         }
  45.        
  46.         if((diff<=1) && i-l+1>=end-start+1){
  47.             end=i,start=l;
  48.         }
  49.        
  50.        
  51.     }
  52.     /*for(big i=start;i<=end;i++){
  53.         cout<<arr[i]<<" ";
  54.     }*/
  55.     cout<<(end-start+1)<<endl;
  56.     return 0;
  57. }
Add Comment
Please, Sign In to add comment