Submission #242633

#TimeUsernameProblemLanguageResultExecution timeMemory
242633SamAndGlobal Warming (NOI13_gw)C++17
40 / 40
386 ms17364 KiB
#include <bits/stdc++.h> using namespace std; #define m_p make_pair #define all(x) (x).begin(),(x).end() #define sz(x) ((int)(x).size()) #define fi first #define se second typedef long long ll; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); mt19937 rnf(2106); const int N = 1000006; int n; int h[N]; int p[N]; int fi(int x) { if (x == p[x]) return x; return p[x] = fi(p[x]); } void kpc(int x, int y) { x = fi(x); y = fi(y); p[x] = y; } int yans; bool c[N]; void solv() { scanf("%d", &n); for (int i = 0; i < n; ++i) scanf("%d", &h[i]); vector<pair<int, int> > v; for (int i = 0; i < n; ++i) { v.push_back(m_p(h[i], i)); } sort(all(v)); reverse(all(v)); for (int i = 0; i < n; ++i) { p[i] = i; } int ans = 0; for (int ii = 0; ii < n; ++ii) { int x = v[ii].se; c[x] = true; ++yans; if (x - 1 >= 0 && c[x - 1]) { kpc(x, x - 1); --yans; } if (x + 1 < n && c[x + 1]) { kpc(x, x + 1); --yans; } if (ii == n - 1 || v[ii + 1].fi != v[ii].fi) ans = max(ans, yans); } printf("%d\n", ans); } int main() { #ifdef SOMETHING freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); #endif // SOMETHING //ios_base::sync_with_stdio(false), cin.tie(0); solv(); return 0; } //while ((double)clock() / CLOCKS_PER_SEC <= 0.9){}

Compilation message (stderr)

gw.cpp: In function 'void solv()':
gw.cpp:36:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
     ~~~~~^~~~~~~~~~
gw.cpp:38:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &h[i]);
         ~~~~~^~~~~~~~~~~~~
#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...