Submission #704080

#TimeUsernameProblemLanguageResultExecution timeMemory
704080Potato3218Global Warming (NOI13_gw)C++17
19 / 40
339 ms65536 KiB
#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 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...