This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define beegspeed ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define pvi pair<int,vector<int>>
#define f first
#define s second
#pragma GCC optimization ("Ofast")
#pragma GCC optimization("ffast-math,fno-stack-protector")
#pragma GCC optimization("unroll-loops")
#pragma GCC target ("avx2,popcnt,bmi2")
vector<int> H;
unordered_map<int,vector<int>> um;
bool submerged[1000007];
vector<pvi> mp;
inline int readInt() {
int x = 0;
char ch = getchar();
while (ch < '0' || ch > '9') ch = getchar_unlocked();
while (ch >= '0' && ch <= '9'){
x = (x << 3) + (x << 1) + ch - '0';
ch = getchar_unlocked();
}
return x;
}
signed main(){
beegspeed
um.reserve(300000);
int n = readInt();
for(int i = 0; i < n; i++){
int h = readInt();
H.push_back(h);
um[h].push_back(i);
}
for(auto& itr: um){
mp.push_back(itr);
}
sort(mp.begin(), mp.end(), greater<pvi>());
int ans = 0, curr = 0;
for(auto itr: mp){
for(auto island:itr.second){
submerged[island] = true;
//check if neighbouring sections are unsubmerged yet
if(island == 0){
if(!submerged[1]){
++curr;
}
}
else if(island == n-1){
if(!submerged[n-2]) ++curr;
}
else{
int p = (!submerged[island + 1]) + (!submerged[island- 1]);
//if both aren't submerged evaluates to 2, if one of them is submerged evaluates to 1, else it's just 0
--p;
curr += p;
}
}
ans = max(ans, curr);
}
cout<<ans;
}
Compilation message (stderr)
gw.cpp:8: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
8 | #pragma GCC optimization ("Ofast")
|
gw.cpp:9: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
9 | #pragma GCC optimization("ffast-math,fno-stack-protector")
|
gw.cpp:10: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
10 | #pragma GCC optimization("unroll-loops")
|
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |