Submission #1353418

#TimeUsernameProblemLanguageResultExecution timeMemory
1353418nini_gvenetadzeGlobal Warming (NOI13_gw)C++20
40 / 40
269 ms32556 KiB
#include<bits/stdc++.h>
using namespace std;

int main()
{
    long long int n;
    long long int ans=0;
    long long int k=LLONG_MIN, m=LLONG_MIN;
    cin>>n;
    vector<long long int> h(n+2);
    vector<long long int> a(n+2, 0);
        for(long long int i=1; i<=n; i++)
    {
        cin>>h[i];
        m=max(m, h[i]);
        
    }
    vector<pair<long long int, long long int>> pp;
    for(long long int i=1; i<=n; i++)
    {
        pp.push_back({h[i], i});
    }
    m--;
    sort(pp.begin(), pp.end());
    reverse(pp.begin(), pp.end());
    for(long long int i=0; i<n; i++)
    {
     
       
            //cout << "HERE" << endl;
            a[pp[i].second]=1;
            if(pp[i].second==1)
            {
              // if(a[pp[i+1].second]==1) {ans--;} 
               if(a[pp[i].second+1]==0) {ans++;}
               //cout<<ans<<" 1 ";
            }
            //cout<<endl;
            
              if(pp[i].second==n)
            {
               //if(a[pp[i-1].second]==1) {ans--;} 
               if(a[pp[i].second-1]==0) {ans++;}
               //cout<<ans<<" 2 ";
            }
            //cout<<endl;
          
            if(pp[i].second!=1 &&  pp[i].second!=n){
            if(a[pp[i].second+1]==1 && a[pp[i].second-1]==1) {ans--;}
            if(a[pp[i].second+1]==0 && a[pp[i].second-1]==0) {ans++;}}
            if( i==n-1 || pp[i].first!=pp[i+1].first){
            k=max(k, ans);}
            
          
        
          
     
          
    }
       cout<<k;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...